我在Azure上托管了一个Web应用程序,它可以在很短的时间内完成角色以执行任务。这项任务是必要的,所以我离不开它。我希望将这些服务组合起来并将它们分配给一个角色,这样当服务在一小时内运行十次时,我就不会收到十个小时的使用费。
我在2012年创建了一篇博文和potential solution。但是,这个项目已经过时了,使用MVC3,并使用了几年来一直没有的软件包。试图让它发挥作用是不可行的。
单个角色上的多个服务仍然是有效的解决方案,还是我必须采取另一种方法?
答案 0 :(得分:1)
我发现了一个博客文章和潜在的解决方案,创建于2012年。但是,这个项目非常过时,使用MVC3,并使用了几年来一直没有的软件包。试图让它发挥作用是不可行的。
单个角色上的多个服务仍然是有效的解决方案,还是我必须采取另一种方法?
我同意David Makogon的观点,网络/工作者角色的内容多年来没有改变。如果您希望在Web角色中加入后台处理,您仍然可以在WebRole类中创建Web角色并覆盖 Run()方法,并使用你在Run()方法中的逻辑。以下将消息添加到存储队列的简单示例在我这方面工作正常,请参考它。
public class WebRole : RoleEntryPoint
{
public override bool OnStart()
{
return base.OnStart();
}
public override void Run()
{
//Replace the code with your logic
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("my connection string");
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
CloudQueue queue = queueClient.GetQueueReference("mymessage");
while (true)
{
CloudQueueMessage message = new CloudQueueMessage("worker run at " + DateTime.UtcNow.ToString());
queue.AddMessage(message);
System.Threading.Thread.Sleep(60000);
}
}
}