У меня есть приложение rails 3.0.5, которое отлично работало с delayed_job 2.1.4.
Прошло несколько недель с тех пор, как я прикоснулся к приложению, но я просто пошел, чтобы настроить его и заметил, что delayed_job не работает. В частности, любой вызов delayed_job возвращает ошибку «неопределенный метод» в методе после задержки. (например, StudentMailer.delay.student_mail ('test') возвращает "неопределенный метод" для "student_mail") Я не могу понять, почему. Несколько вещей:
Замена StudentMailer.delay.student_mail ('test') на StudentMailer.student_mail ('test'). Доставить доставляет почту очень хорошо.
На сайте не были изменены версии гемов, они были заблокированы с момента разработки
RVM был удален и переустановлен
Происходит во всех методах рассылки
Код и ошибка ниже:
MAILER:
class StudentMailer < ActionMailer::Base
def course_signup(email, password, course, enrolment)
@email = email
@password = password
@course = course
@enrolment = enrolment
@student = Student.where(:email => email).first
if (@student.user.first_name && @enrolment.student.user.last_name) then
@username = @student.first_name.gsub(/[^[:alnum:]]/, '').downcase + '.' + @student.last_name.gsub(/[^[:alnum:]]/, '').downcase
else
@username = "fcuser#{@student.id}"
end
mail(:to => email, :from => ENV['ACCOUNTS_EMAIL'], :subject => "You have been enrolled as a student for #{course}", :content_type => 'text/plain')
end
end
MODEL (Mailer вызывается after_save)
after_create {
studentmailer = StudentMailer
#studentmailer.course_signup(self.student.email, self.purchase.course).deliver
randompass = RandomPassword.random_string(20)
randomGatewayPass = RandomPassword.random_string(8)
studentmailer.delay.course_signup(self.student.email, randomGatewayPass, self.purchase.course, self)
self.save }
CONFIG / BOOT.RB
require 'yaml'
YAML::ENGINE.yamler = 'syck'
require 'rubygems'
gemfile = File.expand_path('../../Gemfile', __FILE__)
begin
ENV['BUNDLE_GEMFILE'] = gemfile
require 'bundler'
Bundler.setup
rescue Bundler::GemNotFound => e
STDERR.puts e.message
STDERR.puts "Try running `bundle install`."
exit!
end if File.exist?(gemfile)
ЗАДЕРЖКА ОШИБКИ ЗАДАНИЯ:
{неопределенный метод course_signup' for #<Class:0x007fbcf61850c8>
/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/performable_mailer.rb:6:in
выполнить '\ n / Users / john / .rvm / gems / ruby-1.9.2-p290 / gems / delayed_job-2.1.4 / lib / delayed / backend / base.rb: 87 :в
invoke_job'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in
блок (2 уровня) в
бег '\ п / Users / джон / .rvm / рубины / рубиново-1.9.2-P290 / Библиотека / рубин / 1.9.1 / timeout.rb: 58: в
timeout'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in
блок в
бег '\ п / Users / джон / .rvm / рубины / рубиново-1.9.2-P290 / Библиотека / рубин / 1.9.1 / benchmark.rb: 310: в
realtime'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/worker.rb:119:in
пробег '\ п / Users / джон / .rvm / драгоценные камни / рубиново-1.9.2-P290 / драгоценные камни / delayed_job-2.1.4 / Библиотека / замедленная / worker.rb: 177: в
reserve_and_run_one_job'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/worker.rb:104:in
блок в
work_off '\ п / Users / джон / .rvm / драгоценные камни / рубиново-1.9.2-P290 / драгоценные камни / delayed_job-2.1.4 / Библиотека / замедленная / worker.rb: 103: в
times'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/worker.rb:103:in
work_off '\ п / Users / джон / .rvm / драгоценные камни / рубиново-1.9.2-P290 / драгоценные камни / delayed_job-2.1.4 / Библиотека / замедленная / worker.rb: 78: в
block (2 levels) in
start'\n/Users/john/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/benchmark.rb:310:in
в режиме реального времени '\ п / Users / джон / .rvm / драгоценные камни / рубиново-1.9.2-P290 / драгоценные камни / delayed_job-2.1.4 / Библиотека / замедленная / worker.rb: 77: в
block in
start'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in
петля '\ п / Users / джон / .rvm / драгоценные камни / рубиново-1.9.2-P290 / драгоценные камни / delayed_job-2.1.4 / Библиотека / замедленная / worker.rb: 74: в
start'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/command.rb:104:in
пробег '\ п / Users / джон / .rvm / драгоценные камни / рубиново-1.9.2-P290 / драгоценные камни / delayed_job-2.1.4 / Библиотека / замедленная / command.rb: 83: в
block in
run_process'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/daemons-1.1.4/lib/daemons/application.rb:249:in
называют '\ п / Users / джон / .rvm / драгоценные камни / рубин-1.9.2-P290 / драгоценные камни / Демоны-1.1.4 / Библиотека / Демоны / application.rb: 249: в
block in
start_proc'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/daemons-1.1.4/lib/daemons/daemonize.rb:197:in
называют '\ п / Users / джон / .rvm / драгоценные камни / рубин-1.9.2-P290 / драгоценные камни / Демоны-1.1.4 / Библиотека / Демоны / daemonize.rb: 197: в
call_as_daemon'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/daemons-1.1.4/lib/daemons/application.rb:253:in
start_proc '\ п / Users / джон / .rvm / драгоценные камни / рубин-1.9.2-P290 / драгоценные камни / Демоны-1.1.4 / Библиотека / Демоны / application.rb: 293: в
start'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/daemons-1.1.4/lib/daemons/controller.rb:70:in
пробег '\ п / Users / джон / .rvm / драгоценные камни / рубин-1.9.2-P290 / драгоценные камни / Демоны-1.1.4 / Библиотека / daemons.rb: 195: в
block in
run_proc'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/daemons-1.1.4/lib/daemons/cmdline.rb:109:in
называют '\ п / Users / джон / .rvm / драгоценные камни / рубин-1.9.2-P290 / драгоценные камни / Демоны-1.1.4 / Библиотека / Демоны / cmdline.rb: 109: в
catch_exceptions'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/daemons-1.1.4/lib/daemons.rb:194:in
run_proc '\ п / Users / джон / .rvm / драгоценные камни / рубиново-1.9.2-P290 / драгоценные камни / delayed_job-2.1.4 / Библиотека / замедленная / command.rb: 81: в
run_process'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/command.rb:75:in
блок в
демоном '\ п / Users / джон / .rvm / драгоценные камни / рубиново-1.9.2-P290 / драгоценные камни / delayed_job-2.1.4 / Библиотека / замедленная / command.rb: 73: в
times'\n/Users/john/.rvm/gems/ruby-1.9.2-p290/gems/delayed_job-2.1.4/lib/delayed/command.rb:73:in
daemonize '\ nscript / delayed_job: 5: in `' | 2011-09-06 07:42:21 |
NULL | 2011-09-06 07:43:00 | NULL | 2011-09-06 07:40:07 |
2011-09-06 07:43:00 |