gpt4 book ai didi

redis - 通过 Resque 从 Padrino 异步发送电子邮件

转载 作者:IT王子 更新时间:2023-10-29 06:07:08 26 4
gpt4 key购买 nike

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

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

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

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


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

我仍然很想知道是否可以强制 padrino-mailer 从/lib 开始工作 - 仍然感谢您提供帮助。

最佳答案

我非常喜欢 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

最后,如果您需要在 Controller 的 enqueue 中构建它,您可以构建一个 nubble 简单队列表,例如:

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

关于redis - 通过 Resque 从 Padrino 异步发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8221086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com