RabbitMQ,pymongo,bs4的一些记录
来源:互联网 发布:二级c语言上机题库 编辑:程序博客网 时间:2024/06/06 10:49
1. RabbitMQ
至今还未用过RabbitMQ,以下内容只是脑补。
如果想利用Message Queue的方式实现分布式的系统,不妨考虑RabbitMQ。最近只是看了官网上的简单教程。目前的理解是,生产者(Producer)就是发信人,消费者(consumer)就是收信人。而Queue就是信箱,Exchange就是邮局。
一个Producer在发信时,会署上处理这封信的邮局名(Exchange)和接收信的人的条件(routing_key)
channel.basic_publish(exchange='topic_logs', routing_key=routing_key, body=message)
一个Exchange在收到Producer发送的Message时,会将Message发送到相应的邮箱(Queue)里。
首先,为了让邮局知道邮箱的存在,需要连接 exchange 和 queue
channel.queue_bind(exchange='topic_logs', queue=queue_name, routing_key=binding_key)
其次,在声明Exchange时,需要说明exchange type:
- fanout : exchange知道的所有queue,简单的群发
- direct : routing_key 恰好相同的queue
- topic : routing_key 匹配的queue。这里的routing_key都是a.b.c的形式,有一些通配符。* 和 # 两种,一个和多个。
- headers : 我不清楚。。。
channel.exchange_declare(exchange='topic_logs', type='topic')
至此,邮局可以根据邮局类型和routing_key去将Message发送给相应的邮箱。
一个Consumer就接收Message,然后处理。教程中是注册了一个回调函数去处理信息。貌似也可以自己循环从队列中取(channel.basic_get)
channel.basic_consume(callback, queue=queue_name, no_ack=True)channel.start_consuming()
2. beautiful soup
这是python里解析html时十分好用的库。
我想说的是,还是bs4.element.Tag.select()好用,选择器就是简单直接。这个函数的返回值是一个list,list里的元素的type依然是Tag类型。
3.pymongo
db.find()的返回值是一个pymongo.cursor.CursorType类型。有两个属性可能会常用到:cursor.count()和cursor[index](=__getitem__(index))
__getitem__(index)的返回值是Document。类型是python里相应的类型。
for i in cursor: 也是可以的,其中i是document
bson.json_util.dumps(),bson.json_util.loads()这两个函数也许有用,但其实用不上(- -||)
4.Unix Timestamp
网上有人说,因为毫秒和秒的区别,所以有时候datetimestamp转datetime时要除1000。
- RabbitMQ,pymongo,bs4的一些记录
- 关于pymongo的一些问题
- pymongo统计字段是否存在的记录
- pymongo针对字段的一些操作
- 关于pymongo使用的一些笔记
- python3 BS4 BeautifulSoup 解析的一些解析(迷惑点)
- RabbitMQ的一些概念
- rabbitmq的一些常用命令
- bs4的使用
- rabbitmq-c 的编译记录
- rabbitmq技术的一些感悟
- 研究RabbitMQ的一些心得
- 关于RabbitMQ的一些问题
- 关于RabbitMQ的一些问题
- rabbitmq遇到的一些坑
- pymongo(1) pymongo的基本使用
- pymongo的group操作
- pymongo 驱动的安装
- django执行runserver后端口不通的解决方法
- 线程第七课,sleep示例代码
- 黑马程序员——面向对象(一)
- 解决用django创建网站时mysql插入中文数据报错的问题
- C++中的虚拟继承
- RabbitMQ,pymongo,bs4的一些记录
- IOS中的地图视图MKMapView
- 错误 1 error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 蓝桥安慰奶牛
- 将Hadoop 2.6.0源码导入到Eclipse
- error LNK1561: 必须定义入口点
- 浅谈设计模式:迭代器模式(Iterator Pattern)
- POJ1205 DP公式的详细推导思路
- 【Unity3d】学习笔记(4)