【问题标题】:sending emails asynchronously from Padrino via Resque通过 Resque 从 Padrino 异步发送电子邮件
【发布时间】:2011-11-22 02:03:40
【问题描述】:

我正在尝试从 Padrino 应用程序中异步发送电子邮件 - 我尝试使用 Ruby fork 命令,但我认为它不能很好地扩展,我也尝试过延迟作业,但现在已经选择了 Resque(主要是因为它附带的网络界面非常好)。

除了我不得不使用 Pony 而不是 padrino-mailer 从 /lib 发送我的电子邮件之外,我可以正常工作。我将不胜感激从图片中删除 Pony 的任何帮助。我遇到的主要问题是我不知道如何从控制器或助手之外调用 padrino-mailer。我相信这是可能的,并会感谢任何帮助。如果我们能解决这个问题,我认为这可能对其他 Padrino 开发人员非常有用——异步发送电子邮件可能是 Web 应用程序非常常见的核心可扩展性要求。

有关如何安装和配置 Resque 的信息,请参见此处: https://github.com/defunkt/resque

然后在这里查看如何通过 Resque 从 Padrino 异步发送电子邮件: https://gist.github.com/1384630


更新 - 我切换到使用 ruby​​ 邮件 gem 从 /lib 发送电子邮件 - 请参阅更新模块的更新要点,以通过 resque 发送异步电子邮件。

我仍然很想知道是否可以强制 padrino-mailer 从 /lib 工作 - 对此的帮助仍然很感激。

【问题讨论】:

    标签: redis resque padrino


    【解决方案1】:

    我非常喜欢 resque,我将它用于一些需要优先队列的更复杂的守护进程。

    对于简单但非常灵活的 cron 样式的守护程序,您可以查看:https://github.com/daddye/foreverb

    代码很简单:

    #!/usr/bin/env ruby
    require 'yaml' # not really necessary but some envs need it...
    require 'rubygems' unless defined?(Gem)
    require 'forever'
    boot = File.expand_path('../../config/boot.rb', __FILE__)
    
    Forever.run :fork => true do
      before :each do
        require boot
        # Here we setup app projects, if you need only once you can do
        # MyApp.setup_application!
        # Which load their dependencies
        Padrino.mounted_apps.each do |app|
          app.app_obj.setup_application!
        end
      end
    
      every 1.minutes do
        MyQueue.each do |q|
          MyApp.deliver(:notification, q)
          q.destroy
        end
      end
    end
    

    把这个简单的文件放在你的project_root/lib 下,应用chmod +x file_name 运行它:

    ./lib/file_name start|stop|restart

    最后,如果您需要在控制器中将其构建为 enqueue,您可以构建一个简单的队列表,例如:

    MyQueue.create(:from => 'info@godaddy.com', :to => 'buyer@gmail.com', :subject => 'Order changed')
    

    【讨论】:

      猜你喜欢
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      • 2011-05-06
      • 2013-03-12
      相关资源
      最近更新 更多