Rails - сделайте MailChimp Hominid Gem фоновой задачей
Я пытаюсь сделать мой вызов Hominid API MailChimp, однако без особого успеха. Мой звонок выглядит
h.list_subscribe(:user_list_id, params[:email], {'FNAME' => '', 'LNAME' => ''}, 'html', true, true, true, false)
где h - объект класса Homind::API. Этот объект также не имеет метода 'delay', предоставляемого гемом delayed_job. Он даже не имеет стандартных методов, таких как "класс" или "методы". Когда я создаю пользовательское задание, оно не добавляется в очередь заданий.
Простота, установка метода на "handle_asynchronously" приводит к
can't convert nil into String
в
lib/delayed/yaml_ext.rb:16:in `value='
Я предполагаю, что Delayed_Job не может сериализовать очень раздетый собственный объект Hominid::API. Предложения о том, как это сделать, приветствуются. Спасибо!
1 ответ
Ах, ответ был там все время.
Когда пользовательское задание создано, его необходимо загрузить из инициализатора, чтобы оно было доступно, когда delayed_job выполняет задание. Просто,
require 'my_custom_job_class'
в любом из инициализаторов подойдет.
Вы также можете найти больше информации в вики delayed_job