Я запускаю Rails 4.2 на Heroku (кедр), Ruby 2.1.6
У меня есть Sidekiq, работающий локально на Redis с Foreman, и в моем приложении я вызываю новые методы ActiveLive ActiveLob для Rails, подобные этому, внутри application_helper.rb
:
assigning_user = User.find(object.created_by)
completing_user = User.find(object.completed_by)
if NotificationMailer.assigned_user_completed_todo(object, completing_user, assigning_user).deliver_later
nn.email_status = "sent"
end
Локально это работает так, как предполагалось. Почтовые сообщения отображаются в очереди "почтовых отправлений", а затем обрабатываются и передаются с помощью sendgrid.
Вкл heroku run rails console
Я могу запустить его вручную, и он отлично работает:
Loading production environment (Rails 4.2.1)
irb(main):001:0> a = Account.first
Account Load (1.5ms) SELECT "accounts".* FROM "accounts" ORDER BY "accounts"."id" ASC LIMIT 1
=> #<Account id: 1, name: "The Prestons", stripe_customer_id: nil, active_until: "2015-06-27 14:50:43", plan: nil, created_at: "2015-04-27 14:50:43", updated_at: "2015-04-27 14:50:43">
irb(main):002:0> NotificationMailer.new_account_created(a).deliver_later
Enqueued ActionMailer::DeliveryJob (Job ID: 7c0ddf9c-6892-4aa9-823e-9954b2a4e642) to Sidekiq(mailers) with arguments: "NotificationMailer", "new_account_created", "deliver_now", gid://raisin/Account/1
=> #<ActionMailer::DeliveryJob:0x007f4d9ed9da58 @arguments=["NotificationMailer", "new_account_created", "deliver_now", #<Account id: 1, name: "The Prestons", stripe_customer_id: nil, active_until: "2015-06-27 14:50:43", plan: nil, created_at: "2015-04-27 14:50:43", updated_at: "2015-04-27 14:50:43">], @job_id="7c0ddf9c-6892-4aa9-823e-9954b2a4e642", @queue_name="mailers">
но если я просто завершу действия в своем приложении, то, как я буду в качестве пользователя, ничто не будет доставлено в очередь... Я полностью из идей. Я выполняю рабочий процесс. Я подключен к серверу redis cloud. Я вижу панель инструментов sidekiq.
Что я не настраиваю? С удовольствием предоставляем другие журналы/информацию, но не уверен, что еще нужно предоставить.
Моя консоль просто сообщает о действии:
2015-05-14T09:14:37.674095+00:00 heroku[router]: at=info method=POST path="/accounts/1/projects/15/lists/33/items/112" host=www.myapp.com request_id=516db810-8a2c-4fd0-af89-29a59783b0a8 fwd="76.104.193.78" dyno=web.1 connect=1ms service=111ms status=200 bytes=2039