asp.net - 使用AWS计划任务

标签 asp.net amazon-web-services amazon-swf aws-opsworks

我目前在 AWS 上有一个 Windows 实例,它运行 Windows 计划任务来执行 .net 脚本来处理当天的订单。

我最近使用 ELB 对一些实例进行了负载平衡,这一切都很好。

问题是如何设置计划任务,以便并非所有实例都运行它。我研究过 AWS 上的 OpsWorks、SimpleWorkFlow 等,但对于这个相对简单的任务我应该关注哪一个非常困惑。

谢谢

最佳答案

您也许可以使用 Amazon SWF,但这似乎太过分/复杂。

还有 Amazon Pipeline。这可能是正确的答案,但需要阅读一些内容才能设置。

简单的事情就是在所有盒子上安排您的工作,并让数据库宣布获胜者。

A) 您可以让它“锁定”数据库中未处理的订单,然后处理它们。只要你锁定单个交易,其他工作人员将获得 0 个订单(或几个新订单)来处理。

B) 您可以创建一个特殊表,其中包含作业将锁定的单行。类似于“update work_table setworker='mybox',work_start=now()whereworker=''”。

如果你想对工作框的死亡保持鲁棒性,就必须创建更复杂的规则:工作人员可以一直徘徊,直到工作人员将其工作标记为完成。如果作业没有及时完成,他们可以假设第一个 worker 死了,并尝试从他那里窃取锁并自己运行作业。

如果您没有数据库,您始终可以使用 SDB (Simple DB) 或 DynamoDB。每天访问数据库几次肯定适合免费套餐。

如果你做得正确的话,整个事情只会有 20-50 行代码。

关于asp.net - 使用AWS计划任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20745508/

相关文章:

amazon-web-services - AWS SES : Stuck in sandbox mode

python - 使用 Amazon SWF 在服务器之间进行通信

c# - ListBox 未获取选定的项目

c# - Func<string,string> 和 delegate 有什么区别?

asp.net - IIS将旧用户名返回给我的应用程序

amazon-web-services - 如何使用Amazon SWF

amazon-web-services - 亚马逊 SWF : at least one worker has to be running, 为什么?

asp.net-mvc - ASP.NET MVC Controller 参数可选(即 Index(int?id))

amazon-web-services - 启动 EC2 实例时看不到 EFS 文件

amazon-web-services - 如何在 Amazon S3 中使用浏览器缓存?