我们正在尝试迁移到AWS并使用DynamoDB。将所有内容保存在DynamoDB下是很好的,因此没有多余的数据库类型,但除了半个完整的研究项目,我并没有真正找到任何用于调度程序的东西。动态设置的计划在数千+范围内,可能有许多同时运行。对于语言,Java或至少JVM会很棒。
有没有人知道DynamoDB或其他AWS技术的好调度程序?
---编 当我说调度程序时,我正在考虑像石英一样的用途。我想设置一个cron,它在那个时候运行我给它的代码。这不是做一些AWS任务,这是我们产品内部的任务。 SWF的cron在VM内运行,所以我担心当VM崩溃时会发生什么。数据管道似乎有点太多了。我一直在寻找为石英制作一个动力学的工作存储,一致的阅读可能会解决交易和一致性问题,但我很犹豫,可能会因为很多难以察觉的问题而咬了很多。
答案 0 :(得分:3)
你看过AWS Simple Workflow了吗?您可以使用AWS Flow Framework对服务进行编程,并且他们有一个记录良好的Java API,其中包含大量示例。它们支持continuous workflows with timers,您可以使用它来运行定期代码(请参阅代码示例here)。我使用SWF和Flow Framework for Ruby运行从我的主应用程序启动的异步代码,并且它运行良好。
另一个新选择是查看AWS Lambda。您可以将Lambda函数代码直接附加到DynamoDB table update event,Lambda将为您启动并关闭计算资源,而无需管理服务器来运行代码。此外,最近,AWS启动了直接调用Lambda函数的功能 - 例如您可以使用外部计时器或其他代码按特定计划触发该功能。
最后,this SO帖子可能有其他选项供你考虑。
答案 1 :(得分:2)
另一种选择是使用 AWS Lambda计划功能(2015年10月8日在AWS re:Invent上新宣布)。
以下是博客(source)的相关摘要:
预定功能(Cron)
您现在可以定期调度Lambda函数。您可以指定固定速率(调用之间的分钟数,小时数或天数),也可以指定类似Cron的表达式: