如何在Rails中动态地将作业排入队列?

时间:2016-06-23 20:50:26

标签: ruby-on-rails ruby resque rails-activejob

我找到了一份工作,当工作开始时,在最底层,我希望{1}}同样的工作再次在1小时后运行,但参数不同。

到目前为止我取得的成就:

enqueue

我正在使用resque gem,并通过class SimpleJob @queue = :normal def self.perform(start) puts "Right now, start = #{start}" start += 12 time = some_request_external_api self.set(wait: time).perform_later(start) end end 运行作业。当然,它会在开始时打印QUEUE=* rake resque:work,但在此之后,没有任何反应。我怎样才能实现这个功能?

2 个答案:

答案 0 :(得分:1)

您可以使用调度程序,例如clockwork,而不是将作业重新排入其中。

或者,如果您要完成的是针对其他服务的某些事件,可能您可以查看它的文档并查看它是否提供webhook功能。

只要他们发生任何行动,这些请求就会发送post次请求。

答案 1 :(得分:0)

听起来您正在寻找设置定期工作的方法。如果是这样,请看一下:

https://github.com/resque/resque-scheduler