And*_*ers 14 ruby actionmailer sidekiq ruby-on-rails-4 rails-activejob
我有一个rails应用程序,我有一个方法,我发送了很多电子邮件.我想执行此操作asynchronously.要做到这一点,我试图使用Sidekiq,但我不能让它正常工作 - 它不发送任何电子邮件.
以前发送电子邮件,所以我确定我的电子邮件设置已正确设置.
在我,gemfile我有这个:
gem 'sidekiq'
Run Code Online (Sandbox Code Playgroud)
而且我跑了bundle install.我也安装了redis,按照RailsCasts#366上的说明进行操作.
我已经开始sidekiq使用以下命令:bundle exec sidekiq,这导致了下图中可以看到的内容:

在application.rb我有以下几点:
config.active_job.queue_adapter = :sidekiq
Run Code Online (Sandbox Code Playgroud)
我尝试发送这样的电子邮件:
Mailer.deliver_new_competition_notification(member.user, @competition).deliver_later!
Run Code Online (Sandbox Code Playgroud)
我没有收到任何错误,但电子邮件永远不会被发送.
那么,我错过了什么吗?
Ant*_*ony 39
您需要使用邮件程序队列启动sidekiq以获取这些作业:
bundle exec sidekiq -q default -q mailers
Run Code Online (Sandbox Code Playgroud)
Sidekiq Wiki 详细介绍了这些场景.
小智 6
你也可以修改config/sidekiq.yml:
---
:concurrency: 25
:pidfile: ./tmp/pids/sidekiq.pid
:logfile: ./log/sidekiq.log
:queues:
- default
- mailers
Run Code Online (Sandbox Code Playgroud)
并运行 sidekiq -C config/sidekiq.yml
| 归档时间: |
|
| 查看次数: |
5988 次 |
| 最近记录: |