ruby - resque worker 创建的临时文件不会被删除

标签 ruby resque

我测试了这个简单的工作,由一个普通的 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/

相关文章:

ruby程序基本设计讲解

ruby - Ruby 可以处理多少个 TCP 连接?

html - Rails Image_Tag 无法访问其他目录中的图像

ruby-on-rails - 在 resque-web 中显示 resque-scheduler 选项卡

ruby-on-rails - Heroku Cedar - 没有安装 Resque 前端的静态 Assets

ruby - Ruby 中 "and"和 && 的区别?

ruby-on-rails - 无法安装 curl gem

ruby - 是否可以将参数传递给(resque-status)Resque::JobWithStatus?

ruby-on-rails - Heroku Cedar 上的 Resque 无法正常工作

redis - Resque 作业停留在挂起状态