Rails 用 resque 实现后台上传任务时 出现编码错误的问题?

zhulinpinyu · May 19, 2014 · Last by zhulinpinyu replied at May 20, 2014 · 2707 hits

Hi 大家好,

我用 rails 做一个文件上传的功能,想使用 resque 使其在后台执行,但遇到如下错误

def import
    if request.post? && params[:file]
      Resque.enqueue(Job, params[:file])
      redirect_to search_url, notice: "File imported"
    end
  end

Encoding::UndefinedConversionError: "\xE2" from ASCII-8BIT to UTF-8

还请各位不吝赐教。

应不是 resque 的问题,而是 Job 里用 encode 的问题,与你同样的问题在此可看到: http://stackoverflow.com/questions/13003287/encodingundefinedconversionerror 或者把你 Job 的码做成單独的文档从命令行测试,类似像 ruby job.rb filename,就可知道是 Job 的问题或 resque 的问题。

params[:file] 是一个 FileUploader 对象,直接塞入 resque 可能会有不可预料的状况,参数应该用数字、字符串等简单对象。

#3 楼 @Rei thanks, 我改用 sidekiq

Job.perform_async(path,filename)

it is work fine.

You need to Sign in before reply, if you don't have an account, please Sign up first.