没有作业运行时退出 Horizon 的命令

问题描述 投票:0回答:1

我们在容器(AWS ECS)中运行 Horizon,当我们从 CI-CD 管道推送时,我们创建一个新的容器任务,并且(当前)我们拆除旧的任务,从而终止正在运行的作业。我们真正想做的实际上是让容器进程优雅地退出。容器进程只是一个以:

结尾的entrypoint.sh
php artisan horizon

我们希望该进程停止在队列中获取新作业,并在任何挂起的作业完成时退出。我理解 ECS 命令,但我没有看到 Horizon 的任何内容,也许是一些 shell 命令?任何帮助表示赞赏。

php laravel amazon-ecs laravel-horizon
1个回答
0
投票

您可以从

entrypoint.sh
脚本中调用此命令,如下所示:

php artisan horizon:terminate

但是,该命令不会等待所有作业完成才返回。如果您想在停止容器之前等待所有作业完成,您可以添加一个循环来检查是否有任何 Horizon 进程仍在运行:

php artisan horizon:terminate

while pgrep -f horizon > /dev/null; do sleep 1; done
© www.soinside.com 2019 - 2024. All rights reserved.