私は開発中のrails app(v4.2)を持っています。ユーザがサイトに登録すると、Mailchimpメーリングリストに登録したいと思います。私はsucker_punchとgibbonの宝石を使ってこのプロセスをバックグラウンドジョブとして実装しました。もっと読む(Rails Mailchimp Background Job Not Implemented Error)Rails ActiveJobのバックグラウンドジョブはMailchimpを繰り返しpingしています
私は、user.rbファイルのafter_commit呼び出しを使って動作させています。
ActiveJobはMailchimpが電子メールが既に追加された400のエラーで応答するまで何度もこのメソッドを繰り返し実行しているようです。
MailChimp APIを1回押すだけで、ActiveJobまたはこのメソッドを取得する方法を教えてください。
は、ここに私のバックグラウンドジョブです:
class AddUserToRegistrationListJob < ActiveJob::Base
queue_as :default
require 'gibbon'
def perform(user_id)
user = User.find(user_id)
email = user.email
first_name = user.first_name
last_name = user.last_name
mailchimp_list_id = "my list id here"
Gibbon::Request.api_key = "my api key here"
Gibbon::Request.timeout = 15
gibbon = Gibbon::Request.new
gibbon.lists("#{mailchimp_list_id}").members.create(
body:
{
email_address: email,
status: "subscribed",
merge_fields: {FNAME: first_name, LNAME: last_name
}})
end
end
マイuser.rbファイル:
after_create :add_user_to_registration_list
def add_user_to_registration_list
AddUserToRegistrationListJob.perform_later(self)
end
ジョブが例外を発生して再試行される可能性はありますか? – pdoherty926
問題のユーザーがすでにリストに追加されている場合は、最初のチェックにギボンの使用を変更する必要があります – JohnOHFS
「検索」の使用方法について廃止の警告を除き、提起されているすべての例外があるように表示されません。 –