Hai*_*ter 2 scheduled-tasks amazon-web-services
我希望能够创建一个从现在起任意时间执行的"工作"......比如说,从现在起1年后.我正在尝试提出一个稳定的分布式系统,它不依赖于我维护服务器和调度代码.(显然,我必须维护服务器来执行工作).
我意识到我可以每隔几秒轮询一次simpleDB并检查是否有任何需要执行的东西,但这看起来非常低效.理想情况下,我可以创建一个在适当的时间启动的Amazon SNS主题,但我不认为这是可能的.
或者,我可以在Amazon SQS中创建一条消息,该消息在1年内不可见.1年后,它变得可见,我的轮询代码接收并执行它.
这似乎是一个像Singdons或Inversion Control这样的话题,Phd已经讨论过并提出了最佳实践.如果有的话,我找不到文章.
有任何想法吗?
干杯!
大多数人这样做的最简单方法是至少在EC2服务器上运行带有cron作业的EC2服务器以触发操作.但是,为了触发行动而每年24小时运行EC2服务器的成本最便宜的是大约170美元(具有重度利用率预留实例的8G t1.micro).此外,您必须监视该服务器并从故障中恢复.
我已经根据完全使用AWS资源的计划草拟了一种不同的方法来运行作业.这是一项更多的工作,但没有运行EC2实例的费用或维护问题.
您可以设置Auto Scaling计划(cron格式)以在将来的某个时间点或定期计划(例如,每晚)启动实例.设置此项时,您可以在启动配置的用户数据脚本中指定要运行的作业.
我在下面的文章中写了示例命令,以及为了使用Auto Scaling而需要处理的特殊设置:
使用Auto Scaling在循环计划上运行EC2实例
http://alestic.com/2011/11/ec2-schedule-instance
使用此方法,您只需在作业实际运行时支付EC2实例小时数,然后服务器可以自行关闭.
这不是一种合理的方式来安排成千上万的电子邮件,每个电子邮件都有一个单独的计时器,但它可以很大程度上适用于大型,不常见的工作(每天几次,每年一次).
| 归档时间: |
|
| 查看次数: |
3888 次 |
| 最近记录: |