gpt4 book ai didi

laravel - 在有作业运行时如何将laravel部署到Docker容器中

转载 作者:行者123 更新时间:2023-12-02 21:12:28 26 4
gpt4 key购买 nike

我们正在尝试将laravel设置迁移为使用docker。对laravel应用程序进行Docker的部署很简单,但是我们遇到了一个问题,即如果在预定作业运行时进行部署,则由于容器被破坏,它们将被杀死。最佳实践是什么?有一个单独的容器来运行laravel Scheduler似乎并不能解决问题。

最佳答案

  • 在另一个容器中运行计划的作业,因此您可以独立于laravel应用程序对其进行缩放。
  • 运行计划作业的多个容器,以便您可以停止升级它们,而旧的容器将继续处理作业。
  • Docker将向容器发送SIGTERM信号,并在发出SIGKILL之前等待容器干净退出(两个信号之间的时间是可配置的,默认为10秒)。这将使您可以干净地完成当前的工作(或保存检查点以便以后继续)。

  • 该计划是停止旧容器并逐渐启动新容器,以免造成工作或停工。如果您使用像Docker Swarm或Kubernetes这样的协调器,它们将为您处理大部分此类后勤工作。

    注意:laravel调度程序基于cron,将触发将被docker杀死的进程。为了避免这种情况,请调度程序将作业添加到laravel队列中。队列是一个前台进程,在被杀死之前,SIGTERM将有机会对其进行干净地停止/保存。

    关于laravel - 在有作业运行时如何将laravel部署到Docker容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733126/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com