Сегодня нет эквивалента агента SQL для SQL Azure. Вы должны были бы вызвать свой однострочный оператор из фоновой задачи. Однако, если у вас уже есть веб-роль, вы можете легко создать поток для обработки этого в вашей веб-роли без необходимости создания рабочей роли. Я написал в блоге о понятии здесь . Чтобы создать поток, вы можете сделать это либо в обработчике события OnStart () (где экземпляр Role еще не добавлен в балансировщик нагрузки), либо в методе Run () (где экземпляр Role был добавлен в нагрузку). балансир). Обычно рекомендуется выполнить настройку в OnStart ().
Одно предупреждение, которое может быть неочевидным, независимо от того, выполняете ли вы этот вызов в своей собственной рабочей роли или в фоновом потоке существующей веб-роли: если вы масштабируете свою роль, скажем, до двух экземпляров, вам необходимо убедиться, что ежедневный вызов происходит только из одного экземпляра (в противном случае вы можете получить либо дубликаты, либо, возможно, дорогостоящую операцию, выполняемую несколько раз). Чтобы избежать этого, можно использовать несколько методов, таких как блокировка строки таблицы или аренда BLOB-объекта хранилища Azure. В первом случае вы можете использовать эту строку для хранения метки времени последнего выполнения операции. Если вы получаете блокировку, вы можете проверить, произошла ли операция в течение установленного временного окна (может быть, через час?), Чтобы решить, выполнял ли ее один из других экземпляров. Если вам не удалось получить блокировку, вы можете предположить, что другой экземпляр имеет блокировку и выполняет команду. Есть и другие техники - это всего лишь одна идея.