在典型的网络应用程序中,我希望将某些内容作为延迟作业/任务运行。它们往往具有以下部分或全部属性:
在Scala + Play Framework 2.x应用中设置,排队,安排和运行延迟作业/任务的首选方式是什么?
了解更多详情......
我过去使用的模式,如果适用,我想复制的模式是:
这似乎是一种相对简单但仍然相对灵活的模式。
我过去遇到的例子包括:
在其他语言/框架中,我通常会使用作业/任务框架。例子包括:
我找到了以下现有材料,但不幸的是,我认为它们不适合我的用例。
进一步澄清用例(根据评论者的要求)。我尝试在这里复制的resque或芹菜等有两个主要用例:
对于resque或celery,两个用例排队的任务以相同的方式进入队列,并由runner / worker进程以相同的方式处理。除了其他Scala或Play特定的考虑因素,这将是我对如何处理此问题的初步猜测。
进一步澄清为什么我不相信Akka调度程序适合我的开箱即用(根据评论者的要求):
虽然毫无疑问可以使用Akka调度程序(用于定期作业),akka-remote和akka-cluster(用于在作业调用者和作业运行者之间进行通信)的某种组合来构建适合的解决方案,但这种方法需要一定数量的胶水代码,几乎是一个延迟的工作框架本身。如果它存在,我宁愿使用现有的开箱即用的解决方案,而不是重新发明轮子。