環境
mac os x catalina
ruby on rails 6.0.3
activejob
sidekiq
redis
現象
ruby on railsでjobを試しています。
アダプタにはsidekiqを使っており、redisはbrew経由でインストール済みです。
今回困っていることは、activejobが動いていることは確認できるが、いつまで経ってもjobが実行状態にならず待機状態にいるというものです。
該当現象はsidekiqの管理画面の通りです。
この様に待機状態にずっと入っている状態で、実行中になりません。なぜjobが実行されないのでしょうか?
下の該当ソースコードに記載されている様に、コントローラーで呼び出しているperformメソッドによってtask excute
という文字がコンソールで標準出力がされれば成功なのですが、上手くいきません。
ソースコード
#sidekiq.yml :verbose: false :pidfile: ./tmp/pids/sidekiq.pid :logfile: ./log/sidekiq.log :concurrency: 5 :queues: - default - event
# jobs/word_job.rb class WordJob < ApplicationJob queue_as :default def perform(word) p "sidekiq: #{word}" end end
#words_controller.rb class WordsController < ApplicationController def show WordJob.perform_later('Task execute') end end
試したこと
perform_laterメソッドを使うと以上の様に待機状態にキューが積み上がる状態になります。
その他perform_laterにWorkJob.set(wait: 10.second).perform_later('Task execute')
の様に10秒waitするといった記載も試しましたが、”予定”の項目に積み上がるのみで、実行中になりません。
このタスクを実行させるにはどうすれば良いでしょうか?
ご回答いただけるとありがたいです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。