Dip*_*hal 9 ruby-on-rails ruby-on-rails-3 sidekiq
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
Run Code Online (Sandbox Code Playgroud)
Errno::EIO: Input/output error - <STDOUT>在第6行遇到错误
med*_*e24 11
代码中的#6行是这样的
logger.warn "perform is invoked."
Run Code Online (Sandbox Code Playgroud)
此代码需要打开STDOUT流,您的错误名称是Errno :: EIO.
在Linux中,EIO意味着,尝试读取/写入当前不可用的流.这可能是由于物理错误或孤立进程(其父级已经死亡)尝试从父进程获取stdio或者关闭流时发生的.
小智 5
工作人员可能仍在后台运行,但不再有权访问 STDOUT。
即那些工人仍然继续处理工作,但在打印方面,他们抱怨 EIO。
(在我的情况下,它是由杀死 tmux 服务器而不杀死工作人员引起的。做一个ps -ef | grep resque,他们就在那里。)
解决方案:
杀死那些工人并开始新的工人。
例如pkill resque-1.25.2(或任何工人的名字)
| 归档时间: |
|
| 查看次数: |
10331 次 |
| 最近记录: |