Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 错误号::EIO:输入/输出错误-<;标准件>;_Ruby On Rails_Ruby On Rails 3_Sidekiq - Fatal编程技术网

Ruby on rails 错误号::EIO:输入/输出错误-<;标准件>;

Ruby on rails 错误号::EIO:输入/输出错误-<;标准件>;,ruby-on-rails,ruby-on-rails-3,sidekiq,Ruby On Rails,Ruby On Rails 3,Sidekiq,获取错误Errno::EIO:Input/output Error-在代码的第6行 class FaxFetchWorker include Sidekiq::Worker sidekiq_options :retry => false def perform(job_id=0) logger.warn "perform is invoked." FaxSource.all.each do |source| ... end end e

获取错误
Errno::EIO:Input/output Error-
在代码的第6行

class FaxFetchWorker
  include Sidekiq::Worker
  sidekiq_options :retry => false

  def perform(job_id=0)
    logger.warn "perform is invoked."

    FaxSource.all.each do |source|
      ...
    end
  end
end
此代码需要打开STDOUT流,错误名称为Errno::EIO


在linux EIO中,表示有人试图读取/写入当前不可用的流。这可能是由于物理错误,或者当孤立进程(其父进程已死亡)试图从父进程获取stdio时,或者当流关闭时发生的。

辅助进程可能仍在后台运行,但不再具有对STDOUT的访问权限

也就是说,这些工人仍在处理工作,但在印刷方面,他们抱怨EIO

(在我的例子中,这是由于在不杀死工人的情况下杀死了tmux服务器造成的。执行
ps-ef | grep resque
,他们就在那里。)

解决方案:

杀死那些工人,开始新的工作


e、 g.
pkill resque-1.25.2
(或工人的名字)

我重启redis解决了这个问题:服务redis重启

    logger.warn "perform is invoked."