Выполнить метод в Windows Azure с несколькими экземплярами
Я хочу выполнить методы планировщика заданий в моем приложении Windows Azure. Так что в моем приложении я использую 2 экземпляра одного и того же приложения. Поэтому, если я создаю планировщик, это означает, что оба экземпляра могут выполнять один и тот же код. Можно ли избежать такого исполнения? Или можно проверить другой объект перед выполнением кода? Для реализации я использую C#.Net.
1 ответ
Самым распространенным примером является самопроизвольный контроллер. В этом паттерне, когда эти процессы запускаются, они пытаются создать исключительную аренду чего-либо, скажем, объекта BLOB-объекта. Первый процесс получения аренды - это тот, который фактически выполняет любую обработку, которую необходимо выполнить. Затем он также обновит периодический договор аренды, чтобы убедиться, что он остается "контролером". Любые экземпляры, которым не удалось получить аренду, переходят в спящий режим и проверяют позже (минуты, секунды, часы...), чтобы увидеть, смогут ли они получить аренду сейчас и стать контролером. Это позволяет исходному контроллеру выйти из строя или отключиться, и тогда другой экземпляр возьмет на себя работу контроллера.