我想知道fileobject是否可以发送给sidekiq worker,我已经尝试过了,它工作正常,我关注性能,例如,如果我有一个1000行的CSV,那么我应该发送例如
的文件对象 SidekiqWorker.perform_async(params[:bulk_update_csv_file].read)
这种方法有效但由于文件由很多行组成,如果该文件对象应作为参数传递给sidekiq worker,我会关注性能。
我尝试过其他一些事情,比如使用
CSV.parse(params[:bulk_update_csv_file].read, headers: true)
然后将对象切成大约500行,然后将包含500行的CSV解析器对象发送给sidekiq worker但我收到错误SystemStackError (stack level too deep):
我尝试过的另一种方法是将每一行转换为哈希值,然后将其发送给sidekiq worker,它也可以正常工作。很高兴知道这里最好的方法是什么,即使有10000行。
我的最后一招是保存文件并将路径的链接发送给sidekiq worker,但如果没有这种方法就可以完成。
答案 0 :(得分:2)