Я использую delayed_job (пробовал как tobi, так и Collective_idea) на общем хостинге site5.com с пассажиром в качестве рельсов. Мне удалось сделать работу. Однако похоже, что плагин игнорирует любые изменения в исходном коде класса задания после первого запуска. Я перезапускал сервер при каждом изменении (touch tmp/restart.txt
), но он все равно игнорирует его.
Пример:
файл: 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_job1.rb - ошибка на контроллере
- Если я изменю класс XxJob на класс XxJob1 - ошибка на контроллере
- Если я удалю все содержимое метода Perform - будет выполнен старый код старый код
- Новый файл .rb с классом и выполнением, поставьте этот класс в очередь - отлично работает
- Если я что-то изменил в этом новом файле, снова запустил и запустил задание - будет выполнен старый код.
Между каждым изменением я перезагружал сервер. Вроде Пассажир или еще что-то спасает кеш классов.
Как мне удалить этот кеш? Где-то на сервере хранится? (Надеюсь, у меня есть доступ к нему с виртуального хостинга)
Спасибо!