我有一个简单的Azure工作者角色在每天下午12点执行一项任务。以下是完成此操作的代码。如何在Windows Azure工作角色中安排任务
public override void Run()
{
try
{
while (true)
{
int time = Convert.ToInt32(DateTime.Now.TimeOfDay);
if (time == 12)
{
DoSomethingElse();
}
}
}
catch (Exception ex)
{
Log.Add(ex, true);
}
}
这里DoSomethingElse()
是在每天下午12点发送电子邮件的方法,同时也触发一次,并每天只有一次。
我如何能实现调度时,时间是晚上12点火和执行DoSomethingElse()
。
我的问题是:这是(上面的代码)是最好的方法或使用任何第三方工具。
可能重复的 - 我怎么运行的Web服务调用一个函数每隔一小时的工作吗? ](http://stackoverflow.com/questions/8548159/azure-how-do-i-run-a-job-that-calls-a-function-in-the-webservice-every-hour) –
在一边 - 注意,上面的代码会导致严重的循环,CPU以100%的比例持续运行,并可能导致Azure重新启动您的辅助角色。你至少需要在那里发表睡眠声明。或者使用计时器等待。但是,无论如何,由于多实例,您需要像调用Makogon所说的那样寻找其他调度的答案。 – Frans