【发布时间】:2013-06-12 05:24:48
【问题描述】:
我有一个 Rails 应用程序,我想在后台运行作业,但我需要在原始事件 2 小时后运行该作业。
用例可能是这样的:
用户发布产品列表。 后台作业排队以联合列表到第 3 方 api,但即使在原始请求之后,响应也可能需要一段时间,第 3 方的解决方案是每 2 小时轮询一次,看看我们是否可以获得成功确认。
那么有没有办法将作业排队,以便工作守护进程知道忽略它或只在预定时间收听它?
我不想使用 cron,因为它会加载整个应用程序堆栈,并且可能会在重叠的长时间运行的作业上执行两次。
可以为此使用优先级队列吗?有什么解决方案来实现这一点?
【问题讨论】:
标签: ruby-on-rails cron queue scheduled-tasks background-process