【问题标题】:Authlogic & delayed_job & delayed_jobl_mailer & daemons?Authlogic&delayed_job&delayed_jobl_mailer&daemons?
【发布时间】:2011-06-18 03:16:02
【问题描述】:

[edit] 我可以在带有守护进程的共享服务器上使用delayed_job 插件延迟所有邮件……除了使用authlogic 的邮件。 我不知道我必须在哪里搜索,以及为什么它以其他方式工作。

守护进程(关闭)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):什么都没有!

在哪里搜索问题??

app/initializer/delayed_mailer.rb:

class ActionMailer::Base
  include Delayed::Mailer
end

config/initializers/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

  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

控制器/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

models/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 & daemons 1.0.10 我在 Dreamhost 共享虚拟主机上,但在我的计算机上的开发模式下看起来相同。

[编辑 2] 我会控制,但似乎只是最大运行时间太短了……

[编辑 3] 我正在尝试的另一种方式:control if pid exist

【问题讨论】:

  • 我可以在带有守护进程的共享服务器上使用delayed_job插件延迟所有邮件……除了使用authlogic的邮件。我不知道我必须在哪里搜索,以及为什么它以其他方式工作。
  • 您是否尝试将Delayed::Mailer 明确包含在邮件中,而不是将其包含在ActionMailer::Base?
  • 感谢您的回复。这是我的第一个选择,但行为相同。

标签: ruby-on-rails delayed-job authlogic dreamhost ruby-daemons


【解决方案1】:

只是为了翻页……传入 Rails 3 并更新 gem……一切都很好。而且更简单。

二进制编码的奥秘!

【讨论】:

    猜你喜欢
    • 2016-04-22
    • 2011-07-18
    • 2011-05-23
    • 2010-10-07
    • 2014-10-30
    • 2013-03-05
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多