rails 4.2.5
, sidekiq 4.0.2
및으로 프로젝트를 작성 하고 sidekiq_mailer 0.0.8
있습니다. 현재 저는 이메일을 비동기 적으로 보내는 기능을 개발 중입니다.
그래서 여기 내 메일러가 있습니다.
class UserMailer < ActionMailer::Base
include Sidekiq::Mailer
sidekiq_options queue: 'mailer', backtrace: true
default from: '<mail_from>'
def one_c_client_problems_email(message)
@message = message
email_subject = "SUBJ"
mail(to: '<mail_to>', subject: email_subject)
end
end
Sidekiq 이니셜 라이저 :
require 'sidekiq'
require 'sidekiq/web'
Sidekiq::Web.use(Rack::Auth::Basic) do |user, password|
[user, password] == ['<login>', '<pass>']
end
schedule_file = 'config/schedule.yml'
if File.exists?(schedule_file) && Sidekiq.server?
Sidekiq::Cron::Job.load_from_hash YAML.load_file(schedule_file)
end
Sidekiq 구성 파일 :
---
:concurrency: 10
:pidfile: tmp/pids/sidekiq.pid
:logfile: log/sidekiq.log
:queues:
- default
- mailer
( bundle exec sidekiq -C config/sidekiq.yml
명령으로 sidekiq을 시작합니다 )
에서가 application.rb
, sidekiq은 기본적 활성 작업 어댑터로 구성되어 있습니다 :
config.active_job.queue_adapter = :sidekiq
sidekiq없이 rails 콘솔에서 편지를 보내려고 할 때 :
UserMailer.one_c_client_problems_email('message').deliver!
효과가있다!
sidekiq으로 비동기 이메일을 보내려고 할 때 :
UserMailer.one_c_client_problems_email('message').deliver
아무 반응이 없습니다...
PS 정기 작업은 제대로 작동하고 메일이 아닌 작업은 제대로 작동합니다. 왜 작동하지 않습니까? 도와주세요!
Sidekiq UI에 대기열 없음 :
그러나 UI는 초기화되어야하는 대기열을 참조합니다.
Sidekiq 로그가 비어 있습니다 ( sidekiq -q default -q mailers
콘솔 출력으로 sidekiq을 실행할 때도 비어 있습니다). 로그에 표시되는 내용 :
2016-03-17T09:26:33.926Z 1852 TID-ovlvb5ofs INFO: Booting Sidekiq 4.0.2 with redis options {:url=>nil}
2016-03-17T09:26:33.954Z 1852 TID-ovlvb5ofs INFO: Cron Jobs - add job with name: 1C Client. Update users to our db. Every hour
2016-03-17T09:26:33.956Z 1852 TID-ovlvb5ofs INFO: Cron Jobs - add job with name: Survey Reminder. Remind users about unfilled surveys. 9AM every day
2016-03-17T09:26:33.995Z 1852 TID-ovlvb5ofs INFO: Cron Jobs - add job with name: 1C Client. Update users to our db. Every hour
2016-03-17T09:26:33.997Z 1852 TID-ovlvb5ofs INFO: Cron Jobs - add job with name: Survey Reminder. Remind users about unfilled surveys. 9AM every day
2016-03-17T09:26:36.245Z 1852 TID-ovlvb5ofs INFO: Running in ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-darwin15]
2016-03-17T09:26:36.245Z 1852 TID-ovlvb5ofs INFO: See LICENSE and the LGPL-3.0 for licensing details.
2016-03-17T09:26:36.245Z 1852 TID-ovlvb5ofs INFO: Upgrade to Sidekiq Pro for more features and support: http://sidekiq.org
2016-03-17T09:26:36.245Z 1852 TID-ovlvb5ofs INFO: Starting processing, hit Ctrl-C to stop
Booting Sidekiq 4.0.2 with redis options {:url=>nil}
Redis URL이 로그에있는 이유 는 nil
무엇입니까? sidekiq이 redis를 보지 못하는 이유는 무엇입니까?
에서 Gemfile
라인 gem 'rspec-sidekiq'
에서해야한다 group :test
.
이 gem은 sidekiq 구성을 변경하고 Sidekiq 4.X.X
버전에서는 제대로 작동하지 않습니다 .
group :test do
gem 'rspec-sidekiq'
end
하지만 왜 redis URL이 nil
로그에 있는지 모르겠습니다 ...
또한 비동기 메일 전달을 위해 gem이 sidekiq 4.0.2
필요하지 않습니다 sidekiq_mailer
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다