odoooo
V2EX  ›  问与答

PHP 监控 redis 任务队列有什么方案吗

  •  
  •   odoooo · Feb 24, 2016 · 3514 views
    This topic created in 3907 days ago, the information mentioned may be changed or developed.

    放入队列 LPUSH chuli:duilie [shellcode]

    取出一个并执行并执行取出内容。 RPOP chuli:duilie

    我想通过 php 来实时监控 chuli:duilie 这个对联,如果发现队列中有内容就去 exec 执行。请问有没有什么办法实现。

    谢谢各位。我现在的做法是再执行结束后,做一个查询,但是感觉这样不太好。

    7 replies  •  2016-02-24 17:25:00 +08:00
    holyghost
    holyghost
    Feb 24, 2016❤️2
    1
    php-resque 已经完成了你说的这些功能了。

    要么直接拿来用,要么就去参考下。
    odoooo
    odoooo
    OP
    Feb 24, 2016
    2
    @holyghost 十分感谢,马上看
    lecher
    lecher
    Feb 24, 2016 via Android
    3
    自己写也可以,很容易定制, crontab 开一个定时任务,调用 shell 命令定时检测进程是否启动,没有就启动。
    启动的进程去循环取 Redis 数据之后调用函数执行。

    应该在两百行代码左右的功能。
    displayabc
    displayabc
    Feb 24, 2016
    4
    blpop, brpop 这两个命令是阻塞的,直到有数据
    yemoluo
    yemoluo
    Feb 24, 2016
    5
    @haython 赞同,你唯一要做的就是防止长链接自己断了
    shiny
    shiny
    PRO
    Feb 24, 2016
    6
    brpop 需要注意的地方是小心处理速度跟不上插入队列的速度,然后内存耗尽 game over
    odoooo
    odoooo
    OP
    Feb 24, 2016
    7
    @shiny
    @haython
    @GTim
    谢谢,刚刚看了 Beanstalk 和 gearman 也有持久化队列功能,正在研究中。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1716 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 17:18 · PVG 01:18 · LAX 09:18 · JFK 12:18
    ♥ Do have faith in what you're doing.