php - Laravel Horizo​​n 不执行挂起的作业 - Kubernetes 和 Docker 环境

标签 php laravel docker kubernetes laravel-horizon

我们的 Laravel 应用程序在 Kubernetes 中有两个不同的 Pod,

  • 一个在端口 80 上运行的 apache,(CMD/usr/sbin/apache2ctl -D FOREGROUND)
  • 和另一个正在运行的 worker (Laravel Horizo​​n)(CMD php/var/www/artisan horizo​​n)

  • 问题是当我检查地平线仪表板时,它显示“事件”,我可以在“待处理作业”部分看到作业,但它们从未真正执行过。他们只是坐在那里闲着。

    现在,当我在运行 apache 的 pod 中使用 SSH 并手动运行命令“php artisan horizo​​n”时,它实际上会执行所有挂起的作业。

    我已经确保了以下几点:
  • 两个 Pod 都连接到同一个 Redis 数据库服务
  • 两个 Pod 的地平线前缀相同
  • 最佳答案

    经过几天的挣扎,我得到了这个问题的答案。

    在 docker 环境中使用 Redis 作为缓存、队列或广播代理时,我们需要确保正确定义以下环境变量,并且它们在所有 pod 中必须相同。

  • CACHE_PREFIX
  • REDIS_PREFIX
  • REDIS_CACHE_DB
  • HORIZON_PREFIX

  • 希望这能帮助其他人尝试使用 Kubernetes 和 Docker 部署 Laravel 应用程序。

    关于php - Laravel Horizo​​n 不执行挂起的作业 - Kubernetes 和 Docker 环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62236848/

    相关文章:

    Magento 站点上的 PHP Extendware 爬虫错误

    laravel - laravel uuid 作为主键

    docker - 在内部 IP 上的随机端口上公开容器

    php - 将图像插入数据库

    php - Symfony 强制下载响应中断文本文件

    用于生产的 php artisan 与 apache/nginx

    mysql - Laravel-我需要帮助将 user_id 传递给 SQL 数据库中的 tasks_table 错误:调用未定义的方法 App\\User::id()

    docker - 设置docker-compose环境变量以使用自定义java System.Property正确启动Jenkins

    perl - perl 的 Docker 基础镜像; E : Package 'libssl1.0.0' has no installation candidate

    php - 如何从多个选择选项中获取所有选定的值?