我正在生成PDF文档并将其临时存储到/tmp
目录中。生成文档并将其存储在目录中后(我将其作为Sidekiq的后台进程),然后将其上传到Amazon S3并从/tmp
目录中删除它。
我注意到当用户生成文档并且我正在向服务器部署一些新代码时(使用Capistrano),生成/上传文档的过程会中断。
我想知道这是否与Sidekiq有关?它在Ubuntu上作为Upstart服务运行,所以我不这么认为。
然后我认为问题可能是我将文档存储在/tmp
目录中。目录如何工作?使用Capistrano进行新部署时,是否删除了目录的全部内容?
修改
文档生成通常需要5-10秒,但队列为default
,因此进程可能会失败,因为队列中有default
个进程太多了?
答案 0 :(得分:0)
只应在服务器启动期间清除/tmp
目录(如@Зелёный已注释)。但是你的PDF生成/上传可能只需要太长时间,这个过程可能会被杀死。这是记录here,我引用了文档:
sidekiqctl stop [pidfile] 60
这发送TERM,等待最多60秒然后将杀死-9 Sidekiq进程,如果它尚未退出。请记住,截止日期超时是sidekiqctl在Sidekiq进程上运行kill -9之前将等待的时间。
在capistrano部署期间,应该在控制台输出中显示详细信息,因此如果不是进程被杀死的情况,请将输出添加到问题中。