我正试图在Azure上创建后台进程方面获得一些理解和经验。
我创建了一个简单的控制台应用并将其转换为Azure辅助角色。我该如何调用它?我尝试使用Azure Scheduler,但看起来调度程序只能通过消息队列或HTTP / HTTPS调用辅助角色。
我从未想过任何类型的沟通,因为我的想法是创建一个与任何其他应用程序无法真正通信的后台进程。我是否需要将辅助角色转换为Web角色并使用Azure Scheduler使用HTTP / HTTPS调用它?
答案 0 :(得分:-1)
工作者角色有三个事件:
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。这是处理对象的地方。关闭未关闭的文件 - 处理数据库连接等。