我在RoR应用程序中编写了许多操作,这些操作在流程中执行不同的操作。
例如。-一个动作使用API与第三方服务通信并收集数据。-另一个处理这些数据并将其放入相关数据库中。-另一个采用这种新数据,并以特定的方式对其进行格式化。等等。
我想每隔一段时间启动这个过程,例如每小时启动一次。但我不想每次都做整件事。
有时我可能只想做前两个动作。在其他时候,我可能想做这个过程的每一部分。
因此,运行一个操作,然后在完成后调用另一个操作。等。
这些操作可能需要一个小时才能完成,如果不是更长的话,所以我需要一个不会超时的解决方案。
实现这一目标的最佳方式是什么?
您有很多在后台处理作业的选项:
- Sidekiq:http://mperham.github.io/sidekiq/
- 队列经典:https://github.com/ryandotsmith/queue_classic
- 延迟作业:https://github.com/collectiveidea/delayed_job
- Resque:https://github.com/resque/resque
只要通读一遍,选择一个似乎最符合你标准的。
编辑正如你所阐明的,你想要定期安排的任务。时钟工作是一个很好的宝石(通常是比cron更好的选择):
- https://github.com/tomykaira/clockwork