2016-03-08 107 views
0

在我的Rails应用程序,用户可以上传一个文件,然后什么,我需要做的是:当文件被上传我要开始耙子任务,分析文件和饲料全部数据库中的表,取决于文件的大小,可能需要一些时间。我假设在我的控制器中会有>> system“rake task_name”来完成这项工作。调用rake任务

不过是它的最佳做法?它安全吗?因为这样,任何用户都会开始一个耙子过程。在这Railcast他们建议在后台运行耙。什么是替代方案或惯例?

+1

为什么不只是运行rake任务每五分钟检查是否有新的文件,并根据需要对其进行处理?另一种选择是使用ActiveJob或其他一些后台处理库。 – Carpetsmoker

+0

更好的做法是延迟/异步工作。基本上,上传会触发由工作人员处理的作业。我可以考虑一些其他方法来剥皮这只猫。 – omarvelous

+0

我正在尝试做活动工作的想法。活动作业只适用于Rails 4,我为这个应用程序使用Rails 3.2。我会尽量[延迟工作(https://github.com/collectiveidea/delayed_job) – Jei

回答

0

我使用Rails 3.2,所以我不能使用Active工作。我使用了Sidekiq并且工作得很好。 检查一个非常有用的教程here