0

[изменить] Я могу задержать всю почту с помощью плагина 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.rb

def 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

+1

Что вы хотите сказать? – coreyward

+0

Я могу задержать всю почту с помощью плагина delayed_job на общем сервере с помощью демона ... кроме почты, использующего authlogic. Я не знаю, где я должен искать, и почему он работает по-другому. – Rufilix

+0

Вы пытались включить 'Delayed :: Mailer' явно в почтовое приложение, а не включать его в' ActionMailer :: Base? ' – zetetic

ответ

0

Просто, чтобы перевернуть страницу ... прохождение в Rails 3 и обновление gem ... все отлично. И намного проще.

Тайна двоичного кодирования!

 Смежные вопросы

  • Нет связанных вопросов^_^