V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
seth19960929
V2EX  ›  Kubernetes

K8S 上部署 laravel 的[ 队列] 有什么比较好的方案吗?

  •  
  •   seth19960929 · 195 天前 · 943 次点击
    这是一个创建于 195 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 任务调度 现在使用Cronjob来每分钟运行php artisan schdule:run

    2. 队列 现在采用的是使用Job来运行php artisan queue:work --once

    • 然后这两个都是服务每次运行时都拉取最新的镜像,
    • 每次更新代码, 构建好之后, 推送最新的镜像代码

    ###Q

    • 队列现在理想通过常驻内存的方式运行队列, 去掉--once参数. 这样子比较高性能消费
    • 但是直接运行php artisan queue:work运行队列, 会有个问题, 当代码更新的时候, pod中有任务要运行的话, 应该怎么等任务执行完再退出? (laravel 自带监听了退出信号会停止, 现在想等待当前任务执行完退出)
    • 看有设置超时时间的, 但是比如队列要运行 1 个小时, 10 个小时, 也要等吗?
    2 条回复    2024-05-14 14:07:22 +08:00
    bzj
        1
    bzj  
       194 天前
    都上 k8s 了,消息队列中间件了解一下?
    seth19960929
        2
    seth19960929  
    OP
       194 天前
    @bzj #1 你说的是多个任务之间的, 已经有了.
    我说的是单个任务, 比如我的场景是发 100 个短信这个任务, 耗时十分钟, 当执行第五分钟的时候要更新服务了. 我当然不希望我的队列直接停掉 (当然可以直接在业务中做幂等性处理)
    但是我的要求很简单, 是要等我这个队列运行完再更新
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2699 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:34 · PVG 08:34 · LAX 16:34 · JFK 19:34
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.