素材牛VIP会员
Python后台程序框架
 陪***ˇ  分类:Python  人气:919  回帖:1  发布于6年前 收藏

在我的物联网设计中,以Twsited为基础构建了:

  • TCP/UDPSocketServer,

  • WebServer,

  • CoAP Proxy,

  • MQTT Clients。

这些都通过Redis Pub/Sub交换数据和任务。算是最简单的微服务架构了。

但是一些任务需要采用单独进程完成,比如接收到的接入端报警、电邮请求、事件触发、IP地址查询等。这些都从之前的服务器中剥离出来。目前我也打算从Twisted开始构建,作为Redis Sub Client,然后分别启动新的线程去做。

但是,我觉得以Python社区的风格,应该有更加现成的框架吧?我到不在乎是否是Twisted,还是其他运维框架。

更新1

这个应该算是分布式任务队列,属于业务系统的一部分,和SaltStack之类的运维工具不一样。归类在这个类别的Python框架有:Celery, RQ,MRQ,Huey。其中Celery依赖性太多,RQ只用Pickle做序列化,而MRQ的Redis居然没有AUTH,Huey没有测试。

更新2

MRQ的Mongo没有删除,Huey测试成功。但是,Huey尚不能够支持Twisted前端。此外,基于Twisted的后端设计已经支持了调度单独线程的方法,还需要增加对于延时任务、间隔任务、定时任务的支持。

不过现在觉得在Twisted设计中,不希望有Blocking API,所以subscribe通道可以采用异步推送的方式。而Redis列表采用的Push/Pop方式,需要Twisted不断地调用llen()/pop()方法。

 标签:python

讨论这个帖子(1)垃圾回帖将一律封号处理……

Lv6 码匠
捂***功 移动开发工程师 6年前#1
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取