我正在使用Microsoft Azure并拥有一个Web服务和一个SQL Azure数据库,我想每小时运行一个函数,但不知道如何去做这个? 我假设它与Azure Worker角色有关,但不确定如何让worker角色运行并调用web服务。
答案 0 :(得分:6)
在Web角色或辅助角色的Run()方法中,您可以启动一个线程,该线程一直睡到小时,唤醒,执行您想要的任何任务,然后重新入睡。请记住,当有多个正在进行调度的Web或辅助角色实例时,您需要确保其中一个实例实际上正在进行调度。实现此目的的一种方法是在启动调度程序线程之前尝试租用blob。如果你锁定它,那就去吧。如果没有,请定期重新检查。最终获得锁定的实例将在其实例回收时释放它(这应该至少每月发生一次)。
或者,您可以将消息放在队列中,visibilitytimeout
设置为与某个小时时段相关的特定秒数。然后,每个Web或Worker实例都可以定期轮询队列以查找要处理的任务。在达到可见性超时期限之前,队列读取器将无法看到您推入队列的消息。
答案 1 :(得分:2)
工作人员角色不断运行。在您的工作者角色中,您应该:
答案 2 :(得分:1)
检查SQL Azure Agent项目及其对SQL Azure团队的精彩文章的引用。