首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何处理来自Rails应用程序的带有多个大附件的传入电子邮件?

如何处理来自Rails应用程序的带有多个大附件的传入电子邮件?
EN

Stack Overflow用户
提问于 2011-08-30 13:44:33
回答 2查看 922关注 0票数 3

我需要设置一个Ruby / Rails应用程序,可以接受传入的电子邮件,电子邮件的主体将被忽略,每封电子邮件将有一个或多个大附件(图形)在20MB的大小,该应用程序将收到大约10-20这些电子邮件一小时。

我需要使用自定义电子邮件地址/域。

电子邮件的快速处理不是一个大的优先事项,但是每封电子邮件应该在到达后最多5分钟内得到处理。

我在考虑让所有的电子邮件自动从我的info@mydomain.com邮件帐户转发到一个GMail收件箱,然后让一个Rails库脚本使用MMS2R & TMail access GMail,下载任何新邮件并将它们添加到一个消息队列(延迟作业),这个脚本将由一个cron作业每分钟调用一次。

这个解决方案并不“很好闻”&我担心它的可伸缩性;我不想在每次运行cron / script时加载整个Rails堆栈。

有没有在Rails中处理传入邮件和附件的经验?

EN

回答 2

Stack Overflow用户

发布于 2011-08-30 14:38:48

如果您主要关心的是每分钟加载一次rails环境来运行脚本,我建议您使用mailgun和一些cron替代方案。

我使用bluepill + clockwork + delayed_job的组合来处理这个问题。我有自定义的工作,询问像Delayed::Job.enqueue MyJob.new一样简单。该逻辑被捕获在作业的perform方法中,这有助于最小化依赖关系。

clockwork用于将延迟的作业排入队列,仅加载最小的依赖项,从而保持最小的内存占用。

bluepill用于监视延迟的工人和时钟工作过程,并在他们发生故障或重新启动时重新启动。

一般内存使用: 20MB(bluepill) +25MB(发条)+80-90MB(延迟工作)

Clockwork.rb示例:

代码语言:javascript
复制
ENV['RAILS_ENV'] ||= "development"
ENV['RACK_ENV'] = ENV['RAILS_ENV']

require 'clockwork'
require 'mongoid'
require 'delayed_job'
require 'delayed_job_mongoid'

include Clockwork

base_directory = File.absolute_path(File.dirname(__FILE__))
require File.join(base_directory, "../jobs/fetch_comments_job.rb")
require File.join(base_directory, "../jobs/news_letter_job.rb")

Mongoid.load!(File.join(base_directory, "../config/mongoid.yml"))

every(1.minute, "pop.comments") { Delayed::Job.enqueue FetchCommentsJob.new}
every(1.day, "send.newsletter", :at => '22:30') { Delayed::Job.enqueue NewsLetterJob.new}
票数 0
EN

Stack Overflow用户

发布于 2011-08-30 21:55:47

我写了一篇关于在Rails中接收电子邮件的可能选项的blog post。cron方法可以工作,但如果处理时间超过建议的5分钟,然后在旧实例仍在运行的情况下启动另一个实例,则可能会出现许多问题。

另一种方法是查看如何将电子邮件直接发送到web应用程序,这样您就可以使用现有的应用程序,而不必在每次运行cron任务时启动另一个实例。这样做显然也有潜在的缺点,但像CloudMailin这样的系统允许您将附件直接发送到S3来绕过这一问题。然后,您可以使用后台处理系统下载附件并调整它们的大小。

我还不得不modify paperclip一点让它来调整附件的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7239131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档