【问题标题】:Sidekiq delayed mailer cannot find moduleSidekiq 延迟邮件程序找不到模块
【发布时间】:2013-09-18 10:52:22
【问题描述】:

我已按照关于 sidekiq 延迟扩展的说明进行操作:https://github.com/mperham/sidekiq/wiki/Delayed-Extensions

使用 sidekiq 版本 2.14.1

class ContactController < ApplicationController
  def create
    contact = params[:contact]
    ContactMailer.delay.email_support(contact[:name], contact[:email], contact[:phone], contact[:category], contact[:details])
    redirect_to contact_path, notice: t("contact.email_support.sent_confirmation_flash")
  end
end

#/app/mailers/contact_mailer.rb
class ContactMailer < ActionMailer::Base
  default from: "test@test.com"

  def email_support(name, email, phone, category, details)
    @name = name
    @email = email
    @phone = phone
    @category = category
    @details = details
    @title = "#{t('contact.email_support.title')} - #{@category}"
    mail(:to => "support@test.com", subject: @title)
  end
end

由于某种原因,我收到未定义的类/模块错误:

2013-09-13T16:39:57Z 73620 TID-ov93oo7a8 WARN: undefined class/module ContactMailer
2013-09-13T16:39:57Z 73620 TID-ov93oo7a8 WARN: /Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:334:in `path2class'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:334:in `resolve_class'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:71:in `deserialize'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:104:in `visit_Psych_Nodes_Scalar'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/visitor.rb:15:in `visit'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/visitor.rb:5:in `accept'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:20:in `accept'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:259:in `block in register_empty'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:259:in `each'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:259:in `register_empty'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:122:in `visit_Psych_Nodes_Sequence'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/visitor.rb:15:in `visit'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/visitor.rb:5:in `accept'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:20:in `accept'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:240:in `visit_Psych_Nodes_Document'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/visitor.rb:15:in `visit'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/visitor.rb:5:in `accept'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/visitors/to_ruby.rb:20:in `accept'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych/nodes/node.rb:35:in `to_ruby'
/Users/sunnyto/.rbenv/versions/2.0.0-p0/lib/ruby/2.0.0/psych.rb:130:in `load'

我的 sidekiq 队列如下所示:

队列:默认

工人:Sidekiq::Extensions::DelayedMailer

参数:“---\n- !ruby/class 'ContactMailer'\n- :email_support\n- - afadf\n - ''\n - ''\n - ''\n - afdadf.. .

【问题讨论】:

  • 它似乎适用于分期但不适用于开发。 github.com/mperham/sidekiq/issues/1043
  • 我在开发中也遇到过这个问题。我使用了相同的指令和类层次结构。我从来没有找到解决办法。
  • 能否请给出详细的代码。这样我们就可以找到您得到的问题。

标签: ruby-on-rails ruby-on-rails-4 actionmailer sidekiq


【解决方案1】:

试试 sidekiq mailer gem https://github.com/andersondias/sidekiq_mailer 并让它运行良好!

【讨论】:

    猜你喜欢
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 2017-09-03
    • 2020-01-22
    • 2020-12-19
    相关资源
    最近更新 更多