19

虽然这个问题是 Azure 特有的,但我确信它是一般云计算的常见情况。

我有一个需要在特定时间运行的任务列表。使用窗口的服务器,我可以使用任务计划程序并安排我的程序在某个时间运行。我可以更进一步,创建一个以给定时间间隔运行的 Windows 服务,然后执行相应的任务。

有人对云计算环境的最佳方法有什么建议吗?

我可以创建一个工作角色,它每秒轮询任务列表,然后将适当的任务放入由另一个工作角色处理的队列中。

我可以创建一个每天运行一次的工作者角色,获取所有任务并将它们提交到队列中。然后,处理器角色将从队列中拉出一个项目并在适当的时间进行处理。

还有其他建议吗?

4

7 回答 7

8

您可以设置服务总线队列并将其用作调度程序。

通过将消息上的ScheduledEnqueueTimeUtc设置为所需时间,将消息发送到队列中,此时消息将显示在队列中。在执行工作人员/网络角色中,您在该队列上设置了一个接收器,然后在消息显示后立即获取作业,即作业到期。

这样做的好处是您可以使用它来平衡多个实例之间的作业,并且由于计时器完全在您的应用程序之外,您不必存储、恢复和管理它。SB 为您做这一切。

一个警告:SB 没有取消预定消息的功能。

于 2012-05-17T18:04:37.517 回答
7

现在有几个选项可以在 Azure 上执行此操作

于 2014-02-06T18:21:51.820 回答
1

重复:推荐一个 推荐Quartz.Net的 C# 任务调度库。我最近参与了一个在 Windows 下成功使用它的项目。

于 2009-02-20T22:23:54.773 回答
1

哟可以试试这四种供品:

  1. Azure 辅助角色(云服务)
  2. Azure 调度程序服务
  3. Azure 移动服务调度程序
  4. Azure 网站 Web 作业

有关更多信息,请点击 Azure 计划任务链接

于 2014-05-12T09:06:29.900 回答
1

我意识到这已经过时了,但这仍然是一个常见问题。我在我的一个 Azure VM 上使用 Windows 任务计划程序。它实施起来很简单,让您不必重新发明轮子。

http://www.voiceoftech.com/swhitley/index.php/2011/07/windows-azure-task-scheduler/

于 2011-07-12T18:56:48.537 回答
0

您是否考虑过在 Azure 队列中使用可变的项目到期日期?

我遇到了一种新的调度方法,它也应该适用于 Azure。使用 ASP.NET 缓存项回调。在这里

于 2009-02-20T23:24:50.663 回答
0

您可以在移动服务中安排任务

也不错的演示视频

于 2013-02-27T16:22:58.070 回答