我想設置一個Sidekiq調度程序來運行重複作業。每當不觸發Sidekiq作業
我可以讓Sidekiq作業在Rails控制檯或Rails應用程序中正常運行。我可以得到每當觸發命令。但是,我無法每當觸發Sidekiq工作。
我在不同的機器上覆制了我的工作,並且在某些機器上,我開始工作。在大多數其他機器中,它不工作。
這裏是我的設置:
# app/workers/create_random_product.rb
class CreateRandomProduct
include Sidekiq::Worker
def perform
new_product = Product.new
new_product.name = "Product #{Time.now}"
new_product.price = 5.5
new_product.save
end
end
# config/schedule.rb
every 1.minute do
runner "CreateRandomProduct.perform_async"
command "echo 'hello' >> /home/vagrant/output.txt"
end
正如你可以在schedule.rb看,我可以得到第二個命令運行,因爲我可以看到輸出更新,但亞軍命令似乎並不做任何事。 Sidekiq儀表板也不顯示任何活動。
運行「每當」返回這些cron作業:
* * * * * /bin/bash -l -c 'cd /home/vagrant/sidekiqdemo && bin/rails runner -e production '\''CreateRandomProduct.perform_async'\'''
* * * * * /bin/bash -l -c 'echo '\''hello'\'' >> /home/vagrant/output.txt'
我手動運行的第一個命令,它並觸發Sidekiq工作。
我確實運行過「任何-i」命令來更新crontab文件。我檢查crontab的日誌,我可以看到,它試圖觸發Sidekiq工作:
Oct 16 16:15:01 vagrant-ubuntu-trusty-64 CRON[13062]: (vagrant) CMD (/bin/bash -l -c 'cd /home/vagrant/sidekiqdemo && bin/rails runner -e production '\''CreateRandomProduct.perform_async'\''')
Oct 16 16:15:01 vagrant-ubuntu-trusty-64 CRON[13063]: (vagrant) CMD (/bin/bash -l -c 'echo '\''hello'\'' >> /home/vagrant/output.txt')
這有什麼,我很想念?
解決此問題的任何解決方案? – knowbody 2015-03-03 11:57:09
我還沒有找到。我最終使用了Sidetiq的寶石。這不是一個完美的解決方案,但它所做的就是重新安排工作。 – Khanetor 2015-03-03 15:16:08
謝謝@Khanetor,我其實也是這麼做的。將嘗試調試它,並返回到這裏 – knowbody 2015-03-03 15:34:28