Python-RabbitMQ(简单发送模型)
RabbitMQ需要 erlang 和pika
1.RabbitMQ和erlang版本必须匹配,否则就报没有进程错误
2.RabbitMQ的erlang.cookie和windows下的erlang.cookie必须一致
在windows安装RabbitMQ需要配置环境变量,一个是erlang环境变量,一个是RabbitMQ的环境变量切记!
发送端:生产者
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import pika connection = pika.BlockingConnection( pika.ConnectionParameters( 'localhost' )) channel = connection.channel() #声明一个管道,在管道里发消息 #声明queue channel.queue_declare(queue = 'hello' ) #在管道里还得声明一个队列 channel.basic_publish(exchange = '', routing_key = 'hello' , #就是列队queue名字 body = 'Hello World' #消息内容 ) print ( " [x] Sent 'Hello World!'" ) connection.close() #不用关闭管道,关闭连接就行 |
接收端:消费者
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
import pika # 建立到达RabbitMQ Server的connection # 此处RabbitMQ Server位于本机-localhost connection = pika.BlockingConnection(pika.ConnectionParameters( 'localhost' )) channel = connection.channel() # 声明queue,确认要从中接收message的queue # queue_declare函数是幂等的,可运行多次,但只会创建一次 # 若可以确信queue是已存在的,则此处可省略该声明,如producer已经生成了该queue # 但在producer和consumer中重复声明queue是一个好的习惯 channel.queue_declare(queue = 'hello' ) print ( ' [*] Waiting for messages. To exit press CTRL+C' ) # 定义回调函数 # 一旦从queue中接收到一个message回调函数将被调用 # ch:channel # method: # properties: # body:message def callback(ch, method, properties, body): print ( " [x] Received %r" % body) # 从queue接收message的参数设置 # 包括从哪个queue接收message,用于处理message的callback,是否要确认message # 默认情况下是要对消息进行确认的,以防止消息丢失。 # 此处将no_ack明确指明为True,不对消息进行确认。 channel.basic_consume(callback, queue = "hello" , no_ack = True ) # 开始循环从queue中接收message并使用callback进行处理 channel.start_consuming() |
Python-RabbitMQ(简单发送模型)的更多相关文章
- 邮件发送模型及其Python应用实例
SMTP(Simple Mail Transfer Protocol) 制定: First:RFC 788 in 1981 Last:RFC 5321 in 2008 端口: TCP 25(SMTP) ...
- Python之路-python(rabbitmq、redis)
一.RabbitMQ队列 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.pytho ...
- python RabbitMQ队列/redis
RabbitMQ队列 rabbitMQ是消息队列:想想之前的我们学过队列queue:threading queue(线程queue,多个线程之间进行数据交互).进程queue(父进程与子进程进行交互或 ...
- 用 Python 理解 Web 并发模型
用 Python 理解 Web 并发模型 http://www.jianshu.com/users/1b1fde012122/latest_articles 来源:MountainKing 链接: ...
- RabbitMQ简单实现,exchange四种模式,持久化
RabbitMQ目录 一.简介,简单实现二.Exchange四种类型简单介绍三.消息确认,交换机.队列及消息持久化一.简介及简单实现RabbitMQ是一个消息代理:它接受并转发消息.你可以把它当成一个 ...
- python Rabbitmq编程(一)
python Rabbitmq编程(一) 实现最简单的队列通信 send端 #!/usr/bin/env python import pika credentials = pika.PlainCred ...
- Python爬虫简单实现CSDN博客文章标题列表
Python爬虫简单实现CSDN博客文章标题列表 操作步骤: 分析接口,怎么获取数据? 模拟接口,尝试提取数据 封装接口函数,实现函数调用. 1.分析接口 打开Chrome浏览器,开启开发者工具(F1 ...
- Python 实现简单的 Web
简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...
- python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API
python Django教程 之 模型(数据库).自定义Field.数据表更改.QuerySet API 一.Django 模型(数据库) Django 模型是与数据库相关的,与数据库相关的代码 ...
随机推荐
- vue2.* 事件结合双向数据绑定、模块化以及封装Storage实现todolist 待办事项 已经完成 和进行中持久化 06
ceshi.vue <template> <div id="app"> <input type='text' v-model='todo' @keyd ...
- 简单的XSS手动测试
好吧,我也是初学者,写这个随笔,主要也是为了记录,自学到的点. 简单的案例,见http://www.cnblogs.com/trhimily/p/3898915.html 总结一下主要的点: 1. u ...
- python pip安装报错: ConnectTimeoutError
错误: 解决方案: 使用镜像:pip install xxxx -i https://pypi.douban.com/simple 如:pip3 install --upgrade tensorf ...
- Python读文件报错:SyntaxError: Non-ASCII character in file
打开city.py文件时报错 问题原因: 程序中的编码错误,python默认是acii模式,没有支持utf8.如果代码中有汉字 ,就会报错 解决方案: 源代码文件(city.py)第一行添加:#cod ...
- PAT乙级1012
1012 数字分类 (20 分) 给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字: A1 = 能被 5 整除的数字中所有偶数的和: A2 = 将被 5 除后余 1 的 ...
- BFC (Block formatting context)
一:BFC 是什么 MDN解释: A block formatting context is a part of a visual CSS rendering of a Web page. ...
- Html+Css实现梯形选项卡
1,先看一下效果图 2,梯形通过定位和设置Border来实现的,平行四边形通过旋转来实现的. 3,代码如下 (1)HTML代码 <html lang="en" xmlns=& ...
- linux学习第十七天(NFS、AUTOFS文件共享配置,DNS配置)
一.NFS(网络文件系统,实现linux系统上文件共享) 服务器配置 yum install nfs-utils (安装NFS软件包) iptables -F (清空防火墙) service ip ...
- hadoop体系架构
1.1 Hadoop 概念:hadoop是一个由Apache基金会所开发的分布式系统基础架构.是根据google发表的GFS(Google File System)论文产生过来的. ...
- nginx多域名同IP同80端口配置
http://blog.csdn.net/webnoties/article/details/37597959 vi /etc/nginx/nginx.conf 里面有这2句话: include /e ...