Не существует супер простого способа сделать это, я не думаю.
Вы можете использовать семафор, как уже упоминал Марк, для записи начала и окончания обработки.Затем вы можете запустить любое количество экземпляров, каждый из которых проверяет запись семафора и действует только в том случае, если семафор позволяет это.
Тем не менее, предостережение заключается в том, что произойдет, если один из экземпляров потерпит крах в середине обработкии никогда не выпускает семафор?Вы можете реализовать значение «тайм-аут», после которого другие экземпляры будут пытаться запустить процесс запуска, если не было разблокировки в течение периода времени X.
В качестве альтернативы, вы можете использовать стороннюю службу мониторинга, такую как * 1007.* AzureWatch для отслеживания неотвечающих экземпляров в Azure и запуска нового экземпляра, если количество «готовых» экземпляров меньше 1. Это сэкономит, вы можете сэкономить деньги, не имея необходимости постоянно запускать и запускать 2 экземпляра., но есть небольшая задержка между тем, когда экземпляр выходит из строя и когда запускается новый.