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

Python RQ (Redis Queue) 0.4.0 如何?

  •  
  •   dcoder · 2013-12-13 06:07:42 +08:00 · 6031 次点击
    这是一个创建于 2133 天前的主题,其中的信息可能已经有所发展或是发生改变。
    还没release,有人知道什么时候release吗?看着支持 Job dependencies.
    https://github.com/nvie/rq/blob/master/CHANGES.md

    还有,请问现在在用 RQ 的朋友,这个东西稳定性,性能如何?
    主要有哪些坑?听说有些 worker 会莫名地挂了。这个能设置好吗?

    我看代码base很小,确实是极好的优点!!
    17 回复  |  直到 2014-11-25 14:40:19 +08:00
        1
    Livid   V2EX Moderator   2013-12-13 06:18:54 +08:00
    用了一年多了,挺满意的。
        2
    dcoder   2013-12-13 06:29:43 +08:00   ♥ 1
    Livid老大,你尝试 0.4.0 的 Job dependencies 了吗?

    还有,下面这个问题你遇上过吗 ?
    at 22:19, RQ works are killed aggressively, leave in .pid files
    need to cfg it as a reliable solution
        3
    wuxqing   2013-12-13 10:54:11 +08:00
    如果每台服务器上开多个worker,会出现job都跑到单台服务器的情况
        4
    dcoder   2013-12-13 12:07:38 +08:00
    @wuxqing 我没太看懂你的意思,你是说如果一个跑worker的服务器开了很多worker进程的话,job就会都跑到workder进程开得多的服务器上吗?然后其他worker进程开得少的服务器就饿死了?
        5
    Lycnir   2013-12-13 12:20:54 +08:00
    推荐 Basic Message Queue with Redis
    http://flask.pocoo.org/snippets/73/

    使用中
        6
    dcoder   2013-12-13 13:25:08 +08:00
    @Lycnir 自己写,自己测...?
        7
    wuxqing   2013-12-13 14:03:49 +08:00
    @dcoder 举个例子:
    4台服务器,每台服务器运行4个worker
    发布4个job,有的时候会出现,4个job在一台服务上跑。其他3台服务器闲着
        8
    Livid   V2EX Moderator   2013-12-13 14:14:59 +08:00
    @dcoder 你的意思是这个东西可能会跑着跑着就崩掉只留下 pid 文件么?

    我是用 supervisor 来控制的,如果崩掉就会自动再启动。
        9
    Lycnir   2013-12-13 15:10:54 +08:00
    @dcoder 对 但是还要看具体应用和你要求的性能
    目前我是用作api redis做队列也做cache 然后把结果写入sql
        10
    dcoder   2013-12-13 16:34:05 +08:00
    @wuxqing 貌似是个问题,没有 load balance 的能力么? 我从文档里面是没看到
        11
    dcoder   2013-12-13 16:35:18 +08:00
    @Livid 我还没开始大规模跑,回头再来 update 经验. 还听说 rq-dashboard 费资源,你有用吗?
        12
    dcoder   2013-12-13 16:35:54 +08:00
    @Lycnir 我决定还是先用现成的了
        13
    Livid   V2EX Moderator   2013-12-13 16:42:41 +08:00
    @dcoder 几乎不会用到它。

    因为如果你需要看一些数据,或是直接操作 rq 的话,稍微研究一下它在 Redis 里的数据结构,然后直接写 Redis 就好了。
        14
    dcoder   2013-12-14 02:16:16 +08:00
    @Livid 请问 Job dependencies 你是自己实现的吗? 还是用的最新的 0.4.0 的source code.
        15
    stillzhl   2014-11-25 14:33:12 +08:00
    @Livid job dependency 之间的参数是如何传递的?比如两个job:a 和 b,b依赖于a的job result,那b如何获取这个job result?
        16
    Livid   V2EX Moderator   2014-11-25 14:35:13 +08:00
    @stillzhl 如果 A 运行结束之后,把结果写到 Redis,然后启动 B 呢?
        17
    stillzhl   2014-11-25 14:40:19 +08:00
    @Livid 哦哦,有点明白了。我在写一个分布式的爬虫,上边的A代表下载页面,B代表页面解析。按照你的说法,我可以在A中发起B的job,并以page response作为参数。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1377 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 23:36 · PVG 07:36 · LAX 16:36 · JFK 19:36
    ♥ Do have faith in what you're doing.