我测试了这个简单的工作,由一个普通的 resque worker 执行。
class Jobs::TestTempfile
@queue = :test
def self.perform
Tempfile.open('foo') do |f|
puts f.path
end
end
end
创建的临时文件在作业结束后仍然存在,甚至在工作程序终止后(kill -QUIT pid
)。
我知道最好的做法是取消链接并关闭所有 Tempfiles
但这似乎是一个问题......有人知道一些全局解决方案吗?或者我是否必须完成所有现有作业才能手动取消链接 Tempfiles
。
我测试了 ruby 2.1
(但我肯定 2.0
存在问题)和 resque 1.24.1
。
谢谢!
最佳答案
file = Tempfile.new('foo') puts file.path
工作原理相同,并在解释器退出后删除临时文件。
关于ruby - resque worker 创建的临时文件不会被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097172/