3

我正在开发一个 Rails 应用程序,该应用程序从用户那里获取上传的文件并将它们推送到框中。问题是某些请求会超时,因为 api 调用花费的时间太长。我想将此进程移动到工作进程,但不确定如何在用户上传文件和工作人员将作业从队列中取出之间保留文件。我看到的所有示例似乎都跳过了这部分,或者不处理使用不是 s3 的 api。我考虑将文件存储在数据库中,但 box api 需要一个文件对象(curl -F @file)而不仅仅是文件的内容。关于如何完成的任何指示?出于性能原因,我希望使用sidekiq,但delayed_job 也可以

4

2 回答 2

2

几个月来,我们的一个项目也遇到了类似的问题。查看以下链接以供参考

http://mattgrande.wordpress.com/2009/08/11/delayedjob/

Paperclip、Delayed Job、S3、Heroku - 用于延迟处理敏感上传文件的设计:db 还是 s3?

还有一种用于回形针的宝石延迟工作

https://github.com/jrgifford/delayed_pa​​perclip/

于 2012-10-24T18:42:56.560 回答
1

如果您不想依赖 S3 来存储临时文件,则应该查看paperclip_database gem。

我们用它来在我们的数据库中存储临时文件,以便由延迟作业处理。

只需将带有附加临时文件的课程传递给您延迟的工作,您就可以设置了。就像回形针本身一样,一旦您的作业从数据库中删除,文件就会被删除。

于 2014-04-14T12:13:55.520 回答