个人队列服务项目开源!大家来瞅瞅~ - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
lasuar
V2EX    Python

个人队列服务项目开源!大家来瞅瞅~

  •  
  •   lasuar 2020-01-01 13:39:44 +08:00 3940 次点击
    这是一个创建于 2110 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目地址

    wukongqueue

    简介

    轻量且使用方便的跨进程队列服务

    特点

    • 够快,客户端直接基于 tcp 协议与服务器通信
    • 够简单,api 命名与使用基本与 python 标准库queue保持一致
    • 支持客户端以预连接模式启动,即客户端的启动不依赖服务端

    这个项目是我在开发一个较大的爬虫项目时受到启发的,当时项目需要开发新功能,如果仍然在现有的单进程代码中开发,将大大增加代码复杂度,所以需要队列来解耦为上下游服务,但是又不至于用到 redis 或其他 mq 中间件这样专业功能完备的服务,因为数据不需要持久化,而且不想增加过多的外部依赖,所以就有了这样一个想法。。
    本着少造轮子的原则,它的服务端也就是本地队列服务是直接用的标准库实现的。

    欢迎反馈 bug !感谢 star !

    感谢各位的浏览,谢谢~ 祝 2020 年不缺钱!不缺项目!不加班!

    第 1 条附言    2020-01-09 15:36:08 +08:00

    这几天一直在做改进和更新,以下是最新的更新日志:

    • 初版是调用标准库queue来实现的本地队列服务,发现这样很难进行新功能的扩展开发,现改为直接复用queue源码,不再依赖标准库,后续完全自主维护次项目!
    • 完善api,现基本与标准库queue的api一致,task_done和join都有了~
    • 完善的日志记录,可控制打印级别!
    • 增加server和与client之间的认证功能!

    项目经过较为完整的单元测试,欢迎大家使用!

    第 2 条附言    2020-01-09 15:38:46 +08:00

    如果有什么idea或问题,请在这里留言!

    10 条回复    2020-03-21 22:54:05 +08:00
    loading
        1
    loading  
       2020-01-01 13:44:14 +08:00   1
    不知道对我有没有用,不过请先收下我的回复和 star
    lasuar
        2
    lasuar  
    OP
       2020-01-01 13:47:09 +08:00
    @loading 哈哈,收下收下
    lasuar
        3
    lasuar  
    OP
       2020-01-01 14:16:45 +08:00
    自顶一波!
    CallMeReznov
        4
    CallMeReznov  
       2020-01-01 14:19:46 +08:00
    加 STAR 了,就是一个简易版的订阅发布服务吗?
    lasuar
        5
    lasuar  
    OP
       2020-01-01 14:30:43 +08:00
    @CallMeReznov 不是的哈,订阅发布是有主题概念的,并且支持按条件订阅。我这个是完全是 mq 模式的,目前只有 server(producer)和 client(consumer)概念。预连接功能是为了贯彻松耦合思想。感谢回复~
    lasuar
        6
    lasuar  
    OP
       2020-01-01 20:18:42 +08:00
    @lasuar 更正一下说法,server 角色并不对应 mq 中的 producer,而仅仅指的是启动队列所属的进程,无论是 server 还是 client 都可以 get 和 put。
    zhenruyan
        7
    zhenruyan  
       2020-01-07 19:01:56 +08:00   1
    点了 star
    lasuar
        8
    lasuar  
    OP
       2020-01-09 15:36:32 +08:00
    upup~
    qile1
        9
    qile1  
       2020-03-21 19:14:22 +08:00 via Android
    客户端可以添加队列不.有没有接口查询队列数量,我如果只是添加执行列表,可否提供查询接口显示当前列表数据
    lasuar
        10
    lasuar  
    OP
       2020-03-21 22:54:05 +08:00
    @qile1 标准库有的它都有,get/put/qsize/empty/full/task_done/join, +reset
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5195 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 09:30 PVG 17:30 LAX 02:30 JFK 05:30
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86