Rails 4 - 如何清理“/ tmp”?

时间:2016-05-07 16:08:20

标签: ruby-on-rails ruby capistrano sidekiq tmp

我正在生成PDF文档并将其临时存储到/tmp目录中。生成文档并将其存储在目录中后(我将其作为Sidekiq的后台进程),然后将其上传到Amazon S3并从/tmp目录中删除它。

我注意到当用户生成文档并且我正在向服务器部署一些新代码时(使用Capistrano),生成/上传文档的过程会中断。

我想知道这是否与Sidekiq有关?它在Ubuntu上作为Upstart服务运行,所以我不这么认为。

然后我认为问题可能是我将文档存储在/tmp目录中。目录如何工作?使用Capistrano进行新部署时,是否删除了目录的全部内容?

修改

文档生成通常需要5-10秒,但队列为default,因此进程可能会失败,因为队列中有default个进程太多了?

1 个答案:

答案 0 :(得分:0)

只应在服务器启动期间清除/tmp目录(如@Зелёный已注释)。但是你的PDF生成/上传可能只需要太长时间,这个过程可能会被杀死。这是记录here,我引用了文档:

sidekiqctl stop [pidfile] 60
     

这发送TERM,等待最多60秒然后将杀死-9 Sidekiq进程,如果它尚未退出。请记住,截止日期超时是sidekiqctl在Sidekiq进程上运行kill -9之前将等待的时间。

在capistrano部署期间,应该在控制台输出中显示详细信息,因此如果不是进程被杀死的情况,请将输出添加到问题中。