Я просто пытаюсь запустить функцию в фоновом режиме, используя delayed_job, как указано в этом руководстве: https://github.com/collectiveidea/delayed_job
Я сделал следующее:
- Включено
gem 'delayed_job_active_record'
в мой Gemfile.
- Добавлен
config.active_job.queue_adapter = :delayed_job
в мой config/application.rb
файл.
- Ран
rails generate delayed_job:active_record
и rake db:migrate
с консоли.
Теперь, когда я иду к функции, которая раньше работала, например:
t = Test.new(@test)
t.start
и заменить вторую строку на
t.delay.start
Я вижу, что задание было успешно добавлено в таблицу отложенных заданий. Однако НИЧЕГО не происходит. Это никогда не работает. Это никогда даже не подводит. Я проверил, что bin/delayed_job
действительно работает (согласно ps aux | grep -i delay
)
Но ничего не работает. Что я делаю не так?
Вот как выглядит таблица отложенных заданий:

Я вижу, что работа заблокирована, но понятия не имею, что это значит. Я снял блокировку, запустив DelayedJob.all.update(locked_at: nil, locked_by: nil)
.