我正在Rails 4上构建一个市场应用程序,卖家可以通过csv文件导入产品列表。我想使用delayedjob来处理导入方法,以便它在后台进行处理。
我查看了有关该主题的文档和railscast。说明似乎很简单,但看起来我错过了一些东西。我安装了gem,创建了延迟的jobs表并迁移了db。
我跑了rake jobs:work
,但这就挂了。我得到一个msg说starting job worker
并且它一直保持这样直到我按下ctrl + C.我想将此作为设置,以便每次运行导入过程时都会发生延迟。
这是我的导入方法。我根据文档添加了delay
。当我尝试上传文件时,出现无效的CSV错误。所以有两个问题 - 1)我如何让它发挥作用?我没有看到延迟作业表中的作业和2)如何设置它,以便只有在出现错误时才会通知用户无效格式。
def import
begin
Listing.delay.import(params[:file], params[:user_id])
redirect_to seller_url, notice: "Products are being imported. Please check back in a few minutes."
rescue
redirect_to seller_url, notice: "Invalid CSV file format."
end
end
我的视图只是一个选择文件的表单和一个要导入的提交按钮。
有没有更好的方法来做到这一点没有延迟工作?我需要做一些事情,因为当我加载大文件时,我在heroku上收到超时消息(即使只有100多行,因为有图像是通过URI获取的)