#ruby-on-rails #delayed-job #mailchimp
#ruby-on-rails #отложенное задание #mailchimp
Вопрос:
Я пытаюсь вызвать свой Hominid в MailChimp API, однако без особого успеха. Мой вызов выглядит так
h.list_subscribe(:user_list_id, params[:email], {'FNAME' => '', 'LNAME' => ''}, 'html', true, true, true, false)
где h — объект класса Homind::API. У этого объекта нет метода ‘delay’, предоставляемого delayed_job gem . У него даже нет стандартных методов, таких как «класс» или «методы». Когда я создаю пользовательское задание, оно не добавляется в очередь заданий.
Очевидно, что установка для метода значения ‘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 wiki