作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 ActiveJob
将诸如电子邮件调度之类的作业排队,但我得到一个NotImplementedError (Use a queueing backend to enqueue jobs in the future.
错误
将更新提交到数据库后,在我的 model.rb
中文件
class Article < ActiveRecord::Base
include ActiveModel::Dirty
require './app/jobs/email_scheduler_job'
def send_approved_mail
if self.approved_was == false && self.approved
ArticleMailer.article_approved(self.owner).deliver_later
EmailSchedulerJob.set(wait: 2.weeks).perform_later(owner)
end
end
end
EmailSchedulerJob
class EmailSchedulerJob < ActiveJob::Base
queue_as :default
def perform(*args)
# Do something later
end
end
最佳答案
将来您需要使用队列适配器将作业排入队列。 Sidekiq在大多数情况下都很好,但设置起来相当复杂。我认为使用 sidekiq 进行电子邮件调度似乎有点矫枉过正。我建议使用 sucker_punch为了这。
要使用 Sucker_punch 作为 ActiveJob 的适配器,请将其添加到您的 Gemfile 中:
gem 'sucker_punch'
# config/initializers/sucker_punch.rb
Rails.application.configure do
config.active_job.queue_adapter = :sucker_punch
end
关于ruby-on-rails - NotImplementedError 将来使用排队后端来排队作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34475509/
我是一名优秀的程序员,十分优秀!