【问题标题】:Rails, Paperclip, DelayedJob and cleaning temporary filesRails、Paperclip、DelayedJob 和清理临时文件
【发布时间】:2018-12-19 23:25:50
【问题描述】:

在 Ruby on Rails 应用程序中,我使用 Paperclip 处理附加文件。下载(从 URL)和附件在后台作业(使用 DelayedJob)中完成。

每个作业可能会处理许多要下载的文件,并导致在 /tmp 目录中留下几十个临时文件。

有时,一些临时文件会留在文件系统中,直到重新启动 DelayedJob 工作器。

我想知道是否有办法手动清理临时文件。

感谢您的帮助

【问题讨论】:

    标签: ruby paperclip delayed-job


    【解决方案1】:

    如果您想避免使用 cron 的语法,您可以使用定期安排的作业、使用常规 cron 的安排或使用 Clockwork gem 或 resque-scheduler 之类的东西自动执行此操作。让它在给定目录中查找临时文件;如果它是 /tmp 下的特定子目录,这是最简单的,并删除所有超过 10 分钟的文件,或者任何对您的应用程序有意义的文件。每天运行一次或多次运行该工作,您不必担心。

    【讨论】:

      【解决方案2】:

      您可以使用Tempfile

      用于管理临时文件的实用程序类。

      file = Tempfile.new('foo')
      begin
          # process here
      ensure
          file.close
          file.unlink    # deletes the temp file
      end
      

      【讨论】:

        猜你喜欢
        • 2013-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-13
        • 2016-03-18
        • 1970-01-01
        相关资源
        最近更新 更多