[изменить] Я могу задержать всю почту с помощью плагина delayed_job на общем сервере с помощью демона ... кроме почты, использующего authlogic. Я не знаю, где я должен искать, и почему он работает по-другому.Authlogic & delayed_job & delayed_jobl_mailer & демоны?
демонами (выкл) delayed_job & delayed_mail_mailer (на) authlogic (reset_password): отправить Демоны (на) delayed_job & delayed_mail_mailer (на) other_model (send_mail): отправить демонами (на) delayed_job & delayed_mail_mailer (на) authlogic (reset_password): ничего!
Где искать проблемы ??
приложение/инициализатор/delayed_mailer.rb:
class ActionMailer::Base
include Delayed::Mailer
end
конфигурации/Инициализаторы/delayed_job_config.rb:
Delayed::Job.destroy_failed_jobs = false
silence_warnings do
Delayed::Job.const_set("MAX_ATTEMPTS", 3)
Delayed::Job.const_set("MAX_RUN_TIME", 5.minutes)
end
скрипт/dalayed_job:
#!/usr/bin/env ruby
require 'rubygems'
require 'daemons'
dir = File.expand_path(File.join(File.dirname(__FILE__), '..'))
daemon_options = {
:multiple => false,
:dir_mode => :normal,
:dir => File.join(dir, 'tmp', 'pids'),
:backtrace => true,
:log_output => true
}
Daemons.run_proc('delayed_job', daemon_options) do
Dir.chdir dir
RAILS_ENV = ENV['RAILS_ENV'] || 'development'
require File.join('config', 'environment')
Delayed::Worker.new.start
end
модель/контроллеры/passwoed_reset_controller .rb
/other_controller.rbdef update
@patent = Patent.find(params[:id])
# update all
@patent.update_attributes(params[:patent])
@user = @patent.user
@skill = @patent.skill
@current_user = current_user
Notifier::deliver_specialist_confirmation(@user, @skill, @current_user)
end
модели
def create
@user = User.find_by_email(params[:email])
if @user
Notifier::deliver_password_reset_instructions(@user)
flash[:notice] = t('ResetInstructionSend') + t('CheckMail')
redirect_to root_url
else
flash[:notice] = t('NoUserMail')
render :action => :new
end
end
Контроллеры/notifier.rb
def password_reset_instructions(user)
recipients user.email
from "Skill Forest"
subject "Password Reset Instructions"
body :edit_password_reset_url => edit_password_reset_url(user.perishable_token),:user => user
конец
def specialist_confirmation (user, skill, current_user)
recipients user.email
from "Skill Forest"
subject "Bravo"
body :user => user, :skill => skill, :current_user => current_user
end
Больше информации: Rails 2.3.5 & tobi delayed_job & демонами 1.0. 10 Я нахожусь на dr eamhost поделился веб-хостингом, но в этом режиме на моем компьютере выглядят одинаково.
[Edit 2] Я буду контролировать, чтобы быть уверенными, но, кажется, это было только максимальное время работы слишком короток ...
[Редактировать 3] другой способ Пытаюсь: control if pid exist
Что вы хотите сказать? – coreyward
Я могу задержать всю почту с помощью плагина delayed_job на общем сервере с помощью демона ... кроме почты, использующего authlogic. Я не знаю, где я должен искать, и почему он работает по-другому. – Rufilix
Вы пытались включить 'Delayed :: Mailer' явно в почтовое приложение, а не включать его в' ActionMailer :: Base? ' – zetetic