Azure - 如何运行每小时调用Web服务中的函数的作业?

时间:2011-12-17 21:50:23

标签: azure

我正在使用Microsoft Azure并拥有一个Web服务和一个SQL Azure数据库,我想每小时运行一个函数,但不知道如何去做这个? 我假设它与Azure Worker角色有关,但不确定如何让worker角色运行并调用web服务。

3 个答案:

答案 0 :(得分:6)

在Web角色或辅助角色的Run()方法中,您可以启动一个线程,该线程一直睡到小时,唤醒,执行您想要的任何任务,然后重新入睡。请记住,当有多个正在进行调度的Web或辅助角色实例时,您需要确保其中一个实例实际上正在进行调度。实现此目的的一种方法是在启动调度程序线程之前尝试租用blob。如果你锁定它,那就去吧。如果没有,请定期重新检查。最终获得锁定的实例将在其实例回收时释放它(这应该至少每月发生一次)。

或者,您可以将消息放在队列中,visibilitytimeout设置为与某个小时时段相关的特定秒数。然后,每个Web或Worker实例都可以定期轮询队列以查找要处理的任务。在达到可见性超时期限之前,队列读取器将无法看到您推入队列的消息。

答案 1 :(得分:2)

工作人员角色不断运行。在您的工作者角色中,您应该:

  1. 检查此功能是否已在此时间运行。如果是这样,什么也不做。
  2. 如果此时尚未执行功能,请执行功能。
  3. 在功能中,调用Web服务并进行肮脏的工作。

答案 2 :(得分:1)

检查SQL Azure Agent项目及其对SQL Azure团队的精彩文章的引用。