reload 会让在执行的任务中断?

914739959

问题描述

写了个定时下载文件的后台任务,只要我reload代码,定时任务就会停掉这个下载任务,1000MB的文件下到一半,咔嚓停了,怎么解决?

288 2 0
2个回答

walkor

设置config/server.php stop_timeout 为一个较大的值例如60。这样执行reload的时候如果进程当前任务没执行完会继续等待60秒,60秒仍然没完成执行kill操作。

  • tanhongbin 2024-07-22

    它是 不接受新的请求了吧 然后把当前任务处理完重启 是吧

  • 914739959 2024-07-22

    我后台下载任务可能要下1个小时,那stop_timeout设置1个小时,他是这个任务等待1小时强制结束,会不会影响其他代码的reload,其他代码的修改不会1小时后生效吧

小W

下载断点续传

  • 914739959 2024-07-22

    下载不是那种直接的url文件名,而是转发的,我请求一个地址,他验证之后,再返一个文件流给我,也没告诉我文件总大小,这种怎么断点续传

  • tanhongbin 2024-07-22

    这种是不是应该 单独用队列处理 像这种任务 我都单独部署一个webman 项目 里面 redis 队列 然后处理 也不重启这部分代码

  • 小W 2024-07-22

    下载不是那种直接的url文件名,而是转发的,我请求一个地址,他验证之后,再返一个文件流给我,也没告诉我文件总大小,这种怎么断点续传

    我觉得楼上方式更可靠,download任务不需要经常更新,可以另启服务,要不然呢........

  • tanhongbin 2024-07-22

    这种最好是分出来 和其他业务区分开,这中不能重启的 就不要动了 其他的爱咋弄咋弄

  • 小W 2024-07-22

    关键这只是一个下载的微服务,不牵扯主要业务逻辑,非必要不应该重启,再说重启也必须要有log

  • tanhongbin 2024-07-22

    嗯嗯

  • 小W 2024-07-22

    不支持下载断点续传,无法确定下载时长,解决方案是如何避免重启,而不是重启后如何恢复继续下载服务

  • tanhongbin 2024-07-22

    没毛病,webman这种框架 最好不要总重启,fpm 那种不需要重启的 就随便了

×
🔝