相关疑难解决方法(0)

AWS Lambda计划任务

亚马逊宣布推出AWS Lambda(http://aws.amazon.com/lambda/).

产品描述包括:

计划任务

AWS Lambda函数可以由外部事件计时器触发,因此可以在定期维护时间或非高峰时间运行功能.例如,您可以触发AWS Lambda函数在非繁忙时段执行夜间归档清理.

当我读到这篇文章时,我明白我终于有办法不断地做"类似cron"的任务了.我想每天下午5点运行一个特定的查询.

但是我没有在文档中的任何地方找到它.他们只提到了programatical事件或来自其他AWS服务的事件的触发器.

我误会了吗?或者有人能指出我的文档?

amazon-web-services cron-task aws-lambda

134
推荐指数
4
解决办法
5万
查看次数

如何将Linux cron作业转换为"亚马逊方式"?

无论好坏,我们已将整个LAMP Web应用程序从专用计算机迁移到云计算(Amazon EC2计算机).到目前为止它很好,但我们做crons的方式是次优的.我有一个特定于亚马逊的问题,关于如何使用"亚马逊方式"在云中最好地管理cron作业.

问题:我们有多个Web服务器,需要为批量作业运行crons,例如创建RSS提要,触发电子邮件,实际上有很多不同的事情.但是cron作业只需要在一台机器上运行,因为它们经常写入数据库,因此如果在多台机器上运行,则会复制结果.

到目前为止,我们将其中一个网络服务器指定为"主网络服务器",并且它有一些其他网络服务器没有的"特殊"任务.云计算的权衡是可靠性 - 我们不需要"主 - 网络服务器",因为它是单点故障.我们希望它们都是相同的,能够升级和缩小,而不记得不将master-webserver从集群中取出.

我们如何重新设计我们的应用程序以将Linux cron作业转换为没有单点故障的临时工作项?

我的想法到目前为止:

  • 有一台专用于运行crons的机器.这将是一个更易于管理,但仍然是单点故障,并会浪费一些额外的实例.
  • 有些工作可以想象地从Linux crons转移到MySQL Events但是我不是这个想法的忠实粉丝,因为我不想将应用程序逻辑放入数据库层.
  • 也许我们可以在所有机器上运行所有crons,但是更改我们的cron脚本,所以它们都从一些实现锁定机制的逻辑开始,因此只有一个服务器实际上采取行动而其他服务器只是跳过.我不是这个想法的粉丝,因为它听起来可能有错误,我宁愿使用亚马逊最佳实践,而不是自己动手.
  • 我正在想象一种工作安排在某个地方的情况,添加到队列中,然后网络服务器可能都是一个工人,可以说"嘿,我会拿这个".亚马逊简单工作流服务听起来就是这种事情,但我目前对此并不了解,所以任何具体细节都会有所帮助.对于像cron一样简单的东西,它似乎有点重量级?它是正确的服务还是有更合适的亚马逊服务?

更新:自从问及我在YouTube上观看亚马逊简单工作流服务网络研讨会并在34:40(http://www.youtube.com/watch?v=lBUQiek8Jqk#t=34m40s)注意到的问题后,我看到了一个问题.幻灯片提到cron作为示例应用程序.在他们的文档页面" 亚马逊SWF的AWS Flow Framework样本 "中,亚马逊称他们有crons的示例代码:

... > Cron作业在此示例中,长时间运行的工作流会定期执行活动.可以证明能够继续执行新执行,以便执行可以运行很长一段时间....

我下载了适用于Java的AWS开发工具包(http://aws.amazon.com/sdkforjava/),并确保在一个荒谬的文件夹层中埋藏了一些java代码(aws-java-sdk-1.3.6/samples/AwsFlowFramework/src/com/amazonaws/services/simpleworkflow/flow/examples/periodicworkflow).

问题是,如果我是诚实的,这并没有真正的帮助,因为它不是我能用我的技能组合轻易消化的东西.PHP SDK中缺少相同的示例,并且似乎没有可以通过该过程的教程.所以基本上,我还在寻找建议或提示.

cron lamp scheduled-tasks amazon-ec2 amazon-swf

111
推荐指数
6
解决办法
3万
查看次数