我測試了這個簡單的作業,由普通的resque worker執行。由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
。
謝謝!
我不以Resque工人工作。我用你的語法測試了我的Job,輸出結果是一樣的。 – Such
即使在殺死worker後,臨時文件仍然存在? – Giannis
是的,即使在工人死亡後! – Such