Railsアプリでwhenever(cron使って良い感じにバッチのスケジューリングをしてくれるgem)からsidekiq(redisを使った非同期処理を提供してくれるgem)のワーカー実行したかったんだけど単純に{ワーカークラス}.perform_syncをschedule.rbからなぜか実行できなかったんでsidekiq-cliから実行してみた。その時のメモ
app/workers/sample.rb
class SampleWorker include Sidekiq::Worker def perform console.log("!!!!!test!!!!") end end
config/schedule.rb
every 1.minutes do command "cd /app/rails/; /usr/local/bundle/bin/sidekiq-client push PatientImageWorker" end
なぜかプロジェクトのルートにcdしてさらにsidekiq-clientをフルパスで指定しないと動かない(どっちか片方抜けると動かず)