我有一个rails 3应用程序,它使用sidekiq进行后台作业。我正在使用Paperclip进行文件上传。
我在控制器中的当前操作不起作用:
def tax_rates
if params[:tax_rates]
TaxRatesWorker.perform_async(params[:tax_rates].tempfile)
...
我认为这是因为当作业进入后台时,tempfile会被删除(当我在不使用sidekiq的情况下运行它时它会起作用)。你会怎么建议我处理这个?该文件是一个大的CSV文件。我应该保存吗?
答案 0 :(得分:1)
在Sidekiqs文档中:
这意味着您的worker的参数必须是简单的JSON数据类型 (数字,字符串,布尔值,数组,哈希)。复杂的Ruby对象(例如 日期,时间,ActiveRecord实例)将无法正确序列化。
这意味着您可以保留文件并将路径作为字符串传递给sidekiq