Rails,Paperclip,DelayedJob和清理临时文件

时间:2011-09-25 08:39:59

标签: ruby paperclip delayed-job

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

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

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

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

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以使用Tempfile

  

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

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