Ruby on rails 延迟的作业:命名错误:未定义的方法“我的方法”不延迟';
使用rails 2.3.11和delayed_job 2.0.4作为gem,我在异步使用Ruby on rails 延迟的作业:命名错误:未定义的方法“我的方法”不延迟';,ruby-on-rails,actionmailer,delayed-job,Ruby On Rails,Actionmailer,Delayed Job,使用rails 2.3.11和delayed_job 2.0.4作为gem,我在异步使用handle_时遇到一个错误: 在我的ActionMailer模型中,我删除了我的\u方法,并在声明之后添加了'handle\u asynchronously:my\u method' class MailSender < ActionMailer::Base def my_method ... end handle_asynchronously :my_meth
handle_时遇到一个错误:
在我的ActionMailer模型中,我删除了我的\u方法,并在声明之后添加了'handle\u asynchronously:my\u method'
class MailSender < ActionMailer::Base
def my_method
...
end
handle_asynchronously :my_method
end
使用mailssender.delay.deliver\u延迟我的\u方法
正在工作并且任务已正确处理-但是我宁愿使用handle\u异步
un-my-model来确保邮件始终在后台发送…您仍然可以使用handle\u异步宏声明,但是使用ActionMailer调用延迟作业的语法有点不同
# without delayed_job
MailSender.my_method.deliver
# with delayed_job
MailSerder.delay.my_method
这是从旧版本的自述文件中提取出来的,但它不在当前版本中,因此可能是新版本的延迟作业解决了这一细微差别。我遇到了同样的问题,并最终遇到了以下问题。基本上,delayed_job worker似乎很难对非ActiveRecord对象进行解组。对我有效的快速修复方法是要求您的类在初始值设定项或environment.rb中,例如
# config/environment.rb
...
require 'mail_sender'
您需要使用重新启动工作进程
耙工:工作
在3.2.3中也有这个问题
通过在每次代码更改后重新启动DJ进程来修复此问题。这看起来像Rails 3 mailer-我正在使用Rails 2.3.x。延迟是我现在正在做的事情。尽管如此,我还是想在我的mailer Model中简单地异步使用handle\u
,这就解决了它。不过,使用Rails控制台有点麻烦。这不应该是必需的,因为延迟的_作业应该自己运行。如何调查这件事?
# config/environment.rb
...
require 'mail_sender'