我在终止从队列作业启动的进程时遇到问题。我使用 yii2-queue 扩展来运行一些长时间运行的系统命令,这些命令的总执行时间限制由getTtrRetryableInterface的方法控制。该命令可能需要几分钟到几小时才能完全完成,但我需要在达到 60 分钟标记后将其终止。 <?php use Symfony\Component\Process\Process; use yii\base\BaseObject; use yii\queue\RetryableJobInterface; class TailJob extends BaseObject implements RetryableJobInterface { public function getTtr() { return 10; } public function execute($queue) { $process = new Process('tail -f /var/log/dpkg.log'); $process->setTimeout(60); $process->run(); } public function canRetry($attempt, $error) { return false; } }现在,我面临的问题是,即使queue/listen终止作业,tail命令(这只是一个示例;在生产中我需要运行不同的命令)仍在后台运行。有什么办法可以强制系统tail在作业被终止时终止命令?
2 回答
- 2 回答
- 0 关注
- 184 浏览
添加回答
举报
0/150
提交
取消