3

我的 webapp 是部署到 Heroku 的 Ruby on Rails 应用程序。

我使用 Mailgun Routes 将电子邮件转发到我的 Web 应用程序。Mailgun Routes 的文档在这里http://documentation.mailgun.net/user_manual.html#um-routes

基本上,Mailgun Routes 将主题、正文、发件人等内容作为 HTTP 参数发布。附件以多部分/表单数据编码的文件上传形式发布。在控制器中,它们显示为 UploadedFile ( http://api.rubyonrails.org/classes/ActionDispatch/Http/UploadedFile.html )。

在控制器中,我继续将附件上传到 S3。

但是,如果有大附件或许多附件,请求将超时(Heroku 臭名昭著的 H12 错误)。

我尝试使用后台工作人员(延迟工作)但遇到了这些问题

  • 将整个 UploadedFile 对象或 UploadedFile.tempfile 发送到后台工作人员会导致不可靠的行为(延迟作业不能很好地处理大型对象,例如模型实例)
  • 发送临时文件的路径并尝试打开它不起作用,因为临时文件只能由它们所在的 dyno 访问(临时文件存储在 web worker dyno 中,并且尝试从失败的后台 worker dyno 访问它 -创建Heroku 中的临时文件

关于如何解决这个问题的任何聪明的想法?

4

1 回答 1

1

我刚刚使用 Mailgun 的 Routes 功能遇到了类似的问题。问题的答案似乎是使用他们在 2013 年晚些时候发布的“商店”功能。希望我在集成路线功能之前遇到这个问题,因为使用商店的方法完全不同。

于 2014-01-27T09:56:12.973 回答