Я реализовал отложенную работу в своем приложении Rails, следуя инструкциям .
- Я запускаю приложение Rails
- Я нажимаю на ссылку, которая запускает отложенное задание
- Задание отображается в таблице
delayed_jobs
базы данных
- Я бегу
rake jobs:work
- Задание исчезает из таблицы, поэтому, я думаю, задание выполнено
- НО ПРОБЛЕМА:
/tmp/job.log
не написано (что должна была сделать работа)
Работа:
class CsvImportJob
def perform
File.open('/tmp/job.log', 'w') {|f| f.write("Hello") }
end
end
Звонок:
job = CsvImportJob.new
job.delay.perform
Ничего в логах.
Терминал rake jobs:work
ничего не говорит после своего начального сообщения:
[Worker(host:nico pid:25453)] Starting job worker
Ничего не происходит, когда я запускаю задание во время работы rake jobs:work
.
Напротив, когда выполняется строка "hello".delay.length
, delayed_jobs обрабатывает ее и появляется сообщение String#length completed after 0.0556 - 1 jobs processed at 3.6912 j/s, 0 failed
.