我正在尝试在 Azure 上创建后台进程方面获得一些了解和经验。
我创建了一个简单的控制台应用程序并将其转换为 Azure Worker Role。我该如何调用它?我尝试使用 Azure 调度程序,但看起来调度程序只能通过消息队列或 HTTP/HTTPS 调用辅助角色。
我从没想过任何类型的通信,因为我的想法是创建一个不与任何其他应用程序真正通信的后台进程。我是否需要将辅助角色转换为 Web 角色并使用 Azure 调度程序使用 HTTP/HTTPS 调用它?
我正在尝试在 Azure 上创建后台进程方面获得一些了解和经验。
我创建了一个简单的控制台应用程序并将其转换为 Azure Worker Role。我该如何调用它?我尝试使用 Azure 调度程序,但看起来调度程序只能通过消息队列或 HTTP/HTTPS 调用辅助角色。
我从没想过任何类型的通信,因为我的想法是创建一个不与任何其他应用程序真正通信的后台进程。我是否需要将辅助角色转换为 Web 角色并使用 Azure 调度程序使用 HTTP/HTTPS 调用它?
Worker 角色具有三个事件:
public class WorkerRole : RoleEntryPoint { ManualResetEvent CompletedEvent = new ManualResetEvent(false); public override void Run() { //Your background processing code CompletedEvent.WaitOne(); } public override bool OnStart() { return base.OnStart(); } public override void OnStop() { CompletedEvent.Set(); base.OnStop(); } }
在您运行/调试控制台转换的工作人员角色的那一刻。前两个(OnStart 和 OnRun)按顺序触发。现在在 OnRun 中,您必须通过使用 while 循环或使用ManualResetEvent
这是您的后台处理代码所在的位置来保持线程处于活动状态。
当您从 OnRun 释放线程或发生意外情况时,会触发 OnStop。这是处理您的对象的地方。关闭未关闭的文件句柄数据库连接等。