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(简单发送模型)的更多相关文章

  1. 邮件发送模型及其Python应用实例

    SMTP(Simple Mail Transfer Protocol) 制定: First:RFC 788 in 1981 Last:RFC 5321 in 2008 端口: TCP 25(SMTP) ...

  2. Python之路-python(rabbitmq、redis)

    一.RabbitMQ队列 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.pytho ...

  3. python RabbitMQ队列/redis

    RabbitMQ队列 rabbitMQ是消息队列:想想之前的我们学过队列queue:threading queue(线程queue,多个线程之间进行数据交互).进程queue(父进程与子进程进行交互或 ...

  4. 用 Python 理解 Web 并发模型

    用 Python 理解 Web 并发模型 http://www.jianshu.com/users/1b1fde012122/latest_articles   来源:MountainKing 链接: ...

  5. RabbitMQ简单实现,exchange四种模式,持久化

    RabbitMQ目录 一.简介,简单实现二.Exchange四种类型简单介绍三.消息确认,交换机.队列及消息持久化一.简介及简单实现RabbitMQ是一个消息代理:它接受并转发消息.你可以把它当成一个 ...

  6. python Rabbitmq编程(一)

    python Rabbitmq编程(一) 实现最简单的队列通信 send端 #!/usr/bin/env python import pika credentials = pika.PlainCred ...

  7. Python爬虫简单实现CSDN博客文章标题列表

    Python爬虫简单实现CSDN博客文章标题列表 操作步骤: 分析接口,怎么获取数据? 模拟接口,尝试提取数据 封装接口函数,实现函数调用. 1.分析接口 打开Chrome浏览器,开启开发者工具(F1 ...

  8. Python 实现简单的 Web

    简单的学了下Python, 然后用Python实现简单的Web. 因为正在学习计算机网络,所以通过编程来加强自己对于Http协议和Web服务器的理解,也理解下如何实现Web服务请求.响应.错误处理以及 ...

  9. python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API

    python  Django教程  之 模型(数据库).自定义Field.数据表更改.QuerySet API 一.Django 模型(数据库) Django 模型是与数据库相关的,与数据库相关的代码 ...

随机推荐

  1. jQuery放大镜插件

    (function($) { $.fn.magnifier = function(options){ var options = $.extend({ bigWidth: 400, //大图高度 bi ...

  2. fiddler的inspectors传入的参数乱码

    问题描述:如图Q1所示.传入的参数存在中文乱码问题. 本机:win7 系统,解决方法如下 1.windows按钮+R 2.输入regedit  +回车+是 3.HKEY_CURRENT_USER\So ...

  3. [转]C结构体之位域(位段)

    有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构 ...

  4. Kafka设计解析(五)Kafka性能测试方法及Benchmark报告

    转载自 技术世界,原文链接 Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告 摘要 本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafk ...

  5. Redis(五)主从复制

    本文转载自编程迷思,原文链接 深入学习Redis(3):主从复制 前言 在前面的两篇文章中,分别介绍了Redis的内存模型和Redis的持久化. 在Redis的持久化中曾提到,Redis高可用的方案包 ...

  6. Uva514

    https://vjudge.net/problem/UVA-514 #include <bits/stdc++.h> using namespace std; ; int target[ ...

  7. git merge的使用

    在实际开发中经常会用到git merge操作.但很多情况下我们并不想合并后直接提交,这里介绍git merge的两个常用参数: --no-commit --no-commit 参数使得合并后,为了防止 ...

  8. PHPCMS v9 手机版如何设置独立域名

    一.在PHPcms V9管理后台设置手机门户(目前phpcms v9 版本为V9.6.3) 1.1.开启手机网站.位置:模块 >手机门户 > 添加手机站点,具体设置可参照截图: 填写站点名 ...

  9. 【10.21总结】一个渗透测试练习实例——发现未知的漏洞(Race condition)

    Write-up地址:Exploiting an unknown vulnerability 作者:Abhishek Bundela 这篇文章跟我之前看到的文章不太一样,作者是按照一个练习的方式简单描 ...

  10. R语言学习笔记(二十一):字符串处理中的元字符(代码展示)

    元字符有自己的特殊含义 [ ]内的任意字符将被匹配 grep(pattern = "[wW]", x = states, value = T) grep(pattern = &qu ...