Я использую delayed_job (попробовал как tobi, так и collect_idea) на хостинге сайта site5.com, с пассажирским окружением. Мне удалось сделать работу. Однако, кажется, плагин игнорирует любые изменения в исходном коде класса задания после первого запуска. Я перезапустил сервер при каждом изменении (touch tmp/restart.txt
), но он все равно игнорирует его.delayed_job - Выполняет не обновленный код?
Пример:
файл: lib/xx_job.rb
class XxJob
def perform
Rails.logger.info "XX START"
TempTest.delete_all
i = 0
10.times {
i+=1
TempTest.create(:name => "XXX")
sleep(1)
}
Rails.logger.info "XX END"
end
end
В простом контроллере я называю:
Delayed::Job.enqueue(XxJob.new)
Выводы Я собрал:
- Если изменить xx_job. rb - xx_job 1.rb - ошибка контроллера
- Если изменить класс XxJob к классу XxJob1 - ошибка на контроллере
- Если удалить все содержимое выполнить метод - старый код старого код выполняются
- New .RB файла с классом и выполнять, епдиеие этот класс - отлично работает
- Если я что-то изменить в выполнения и снова запустить работу этого нового файла - старый код выполняется
Между каждым изменением я сделал рестарт сервера. Кажется, что Пассажир или что-то еще сохраняет кеш класса.
Как удалить этот кеш? Есть ли где-нибудь на сервере? (Я надеюсь, что у меня есть доступ к нему из общего хостинга)
Спасибо!
Вы видели этот ответ? http://stackoverflow.com/questions/1609586/rails-delayedjob-want-to-load-newest-version-of-job-class –