【发布时间】:2015-04-29 00:42:56
【问题描述】:
我有一个 Heroku Rails 4 应用程序,我希望它可以连续运行。它正在处理来自 Amazon SQS 的数据。
现在,我使用 clock.rb 不断添加延迟作业来运行工人。工人设置为运行 10m,然后完成。由于 clock.rb 每 30 秒运行一次,它应该会很快重新启动一个新进程。
我的 Procfile 是:
myworker: QUEUE=myworker bundle exec rake jobs:work
我想知道是否有办法改变 Procfile,这样我就可以说“myworker 的每个实例都应该在它还活着的时候运行这个进程。如果它由于某种原因而死,请立即重新启动它并开始处理再次"
有没有使用 Rails 4 和 Heroku 的好方法?
一定有……我真的不知道这叫什么,但肯定有这个名字。
另外,一旦我让它运行,是否有一种好方法可以说“每 10m 关闭一次进程,然后重新启动,只是为了清除你的内存/重新启动”?
【问题讨论】:
-
您看过 EventMachine 或 Sidekiq 吗?不完全确定您要做什么,但它们可能会有所帮助。
-
我认为应该有一种方法可以在没有任何延迟作业的情况下运行它。我只是希望它是“启动这个实例并让它 100% 运行这个进程,不需要任何队列或延迟作业”
标签: ruby-on-rails ruby-on-rails-4 heroku