使用Sql Azure计划的任务?

Bit*_*KFu 6 scheduled-tasks azure azure-sql-database

我想知道是否有办法在SQL Azure中使用预定任务?感谢每一位帮助.

关键是,我想每天运行一个简单的单行语句,并希望阻止设置辅助角色.

Dav*_*gon 6

今天没有SQL Azure等效的SQL Azure.您必须从后台任务调用单行语句.但是,如果您已经拥有Web角色,则可以轻松生成一个线程来在Web角色中处理此角色,而无需创建辅助角色.我在这里写了关于这个概念的博客.要生成一个线程,您可以在OnStart()事件处理程序(其中Role实例尚未添加到负载均衡器中)或Run()方法(将Role实例添加到负载中)中执行此操作平衡器).通常在OnStart()中进行设置是个好主意.

一个可能不明显的警告,无论是在自己的工作者角色中还是在现有Web角色的后台线程中执行此调用:如果将角色扩展到例如两个实例,则需要确保仅每日调用从其中一个实例发生(否则您可能最终导致重复,或者执行多次可能代价高昂的操作).您可以使用一些技术来避免这种情况,例如表行锁或Azure存储blob租约.使用前者,您可以使用该行来存储上次执行操作的时间戳.如果您获得了锁,您可以检查操作是否在设定的时间窗口(可能是一小时?)内发生,以确定其中一个实例是否已经执行了它.如果您无法获取锁定,则可以假设另一个实例具有锁定并正在执行该命令.还有其他技术 - 这只是一个想法.