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

Другие вопросы по тегам