Эй у нас есть класс библиотеки (lib/Mixpanel), который называет отложенное задание следующим образом:
class Mixpanel
attr_accessor :options
attr_accessor :event
def track!()
..
dj = send_later :access_api # also tried with self.send_later
..
end
def access_api
..
end
Проблема - это, когда мы выполняем грабли jobs:work: мы получаем следующую ошибку:
undefined method `access_api' for #<YAML::Object:0x24681b8>
Какая-либо идея, почему?
Delayed_job всегда автоматически загружает классы ActiveRecord, но он не знает о других типах классов (например, lib), которые он маршалировал в базе данных как YML. Итак, вам нужно явно запустить для них загрузчик классов. Поскольку DJ запускает среду Rails, просто укажите в инициализаторе любые маршалированные классы, не относящиеся к AR:
(config/initializers/load_classes_for_dj.rb)
Mixpanel