RabbitMQ提供了具有可预测且一致的吞吐量和延迟的高可用性,可伸缩和便携式消息系统。 RabbitMQ是AMQP (业务消息传递的开放标准)的领先实现 ,并且通过适配器支持XMPP,SMTP,STOMP和HTTP来进行轻量级Web消息传递。

这个新模块允许您在Play的RabbitMQ实例上使用和产生消息! 框架应用程序。

安装

play install rabbitmq

组态

module.rabbitmq=${play.path}/modules/rabbitmq-0.0.1
rabbitmq.host=localhost
rabbitmq.port=5672
rabbitmq.userName=guest
rabbitmq.password=guest
rabbitmq.vhost=/
rabbitmq.exchangeType=direct
rabbitmq.durable=true
rabbitmq.autoAck=false
rabbitmq.basicQos=true

定义将由队列使用的消息(只是一个简单的POJO)

public class SampleMessage implements Serializable {/** The field1. */private String field1;/** The field2. */private String field2;/*** Instantiates a new sample message.*/public SampleMessage() {}/*** Instantiates a new sample message.** @param field1 the field1* @param field2 the field2*/public SampleMessage(String field1, String field2) {super();this.field1 = field1;this.field2 = field2;}/*** Gets the field1.** @return the field1*/public String getField1() {return field1;}/*** Sets the field1.** @param field1 the new field1*/public void setField1(String field1) {this.field1 = field1;}/*** Gets the field2.** @return the field2*/public String getField2() {return field2;}/*** Sets the field2.** @param field2 the new field2*/public void setField2(String field2) {this.field2 = field2;}/*** To String** @see java.lang.Object#toString()*/@Overridepublic String toString() {return "SampleMessage [field1=" + field1 + ", field2=" + field2 + "]";}
}

发布消息

public static void publish(String q) {RabbitMQPublisher.publish("myQueue", new SampleMessage(q, q));render(q);}

创建消息使用者

@OnApplicationStart(async=true)
public class RabbitMQSampleConsumer extends RabbitMQConsumer {/*** Consume Message** @see play.modules.rabbitmq.consumer.RabbitMQConsumer#consume(T)*/@Overrideprotected void consume(SampleMessage message) {System.out.println("******************************");System.out.println("* Message Consumed: " + message);System.out.println("******************************");}/*** Name of the Queue that this consumer will be listening to.** @return the string* @see play.modules.rabbitmq.consumer.RabbitMQConsumer#queue()*/@Overrideprotected String queue() {return "myQueue";}/*** Return message type.** @return the message type* @see play.modules.rabbitmq.consumer.RabbitMQConsumer#getMessageType()*/protected Class getMessageType() {return SampleMessage.class;}
}

*请注意,这是一场戏! 作业,因此您可以手动启动它,也可以使用Play提供的其他注释! 例如@On或@Every。 有关更多信息,请参见“ 异步作业”文档 。

Firehose –另一种批量发布消息的方法

@OnApplicationStart(async = true)
public class RabbitMQSampleFirehose extends RabbitMQFirehose {/** The count. */public int count = 0;/*** Get data to be loaded.** @param n the n* @return the data* @throws Exception the exception* @see play.modules.rabbitmq.producer.RabbitMQFirehose#getData(int)*/@Overrideprotected List getData(int n) throws Exception {if ( count >= 10 ) {return null;}List results = new ArrayList();for (int i = 0; i < n; i++) {results.add(new SampleMessage("field1", "field2"));count++;}return results;}/*** Batch Size - How many records we will select at the time?.** @return the int* @see play.modules.rabbitmq.producer.RabbitMQFirehose#batchSize()*/@Overrideprotected int batchSize() {return 2;}/*** Queue Name.** @return the string* @see play.modules.rabbitmq.producer.RabbitMQFirehose#queueName()*/@Overrideprotected String queueName() {return "myQueue";}}

*请注意,这是一场戏! 作业,因此您可以手动启动它,也可以使用Play提供的其他注释! 例如@On或@Every。 有关更多信息,请参见“ 异步作业”文档 。 当然,该代码可在Github上获得 。

现在开始游戏!

参考: RabbitMQ Play模块! 来自JCG合作伙伴 Felipe Oliveira在Geeks的 框架 完全在 。

相关文章:

  • Java Code Geeks Andygene Web原型
  • 每个程序员都应该知道的事情
  • Spring MVC开发–快速教程
  • SmartGWT入门,提供出色的GWT界面
  • GWT 2 Spring 3 JPA 2 Hibernate 3.5教程

翻译自: https://www.javacodegeeks.com/2011/04/rabbitmq-module-play-framework.html

RabbitMQ播放模块! 构架相关推荐

  1. rabbitmq订单模块_RabbitMQ播放模块! 构架

    rabbitmq订单模块 RabbitMQ提供了具有可预测且一致的吞吐量和延迟的高可用性,可伸缩和便携式消息传递系统. RabbitMQ是AMQP (业务消息传递的开放标准)的领先实现 ,并且通过适配 ...

  2. springboot jpa 创建数据库以及rabbitMQ分模块扫描问题

    在使用jpa过程中,如果没有在配置中加入自动创建实体对于的sql,则需要提前创建建表语句 spring.jpa.properties.hibernate.show_sql=true spring.jp ...

  3. Arduino案例实操 -- 语音播放模块(DY-SV5W)

    案例主控板如不做特殊说明的话,均默认是Arduino UNO控制板. 本次实验以UNO发送串口协议控制语音播放器播放歌曲,语音播放模块选型DY-SV5W. 文章标题导航 一.硬件选择 1. Ardui ...

  4. DY-SV17F语音播放模块应用篇一 【IO独立模式】

    DY-SV17F模块模式分为I/O组合模式和I/O独立模式,每种模式下又有两种方式--按键触发模式和电平触发模式,低电平有效. 注: 按键触发是指低电平触发后随即释放电平,类似于按键按下后弹起,故称为 ...

  5. Arduino 单总线驱动音频播放模块DY-SV 5W示例(MP3)

    只需要一根数据线,即可操控这个语音播放模块拉. #define Pin_MP3 26#define CLEAR 0x0A //清零数字 #define MUSIC_SELECT 0x0B //选取确认 ...

  6. WINCE TCPMP应用三:TCPMP的播放模块

    首先,我们来看一下TCPMP的播放模块的结构定义:  static const nodedef Player =  {   sizeof(player_base)|CF_GLOBAL|CF_SETTI ...

  7. DY-SV17F语音播放模块应用篇二 【UART 串口模式】

    UART 串口模式 是采用波特率为9600的全双工串口通信. 语音模块做为从机处理,上电默认等待状态,所有播放操作全由主机控制. 从机不会主动发起通信,所有通信都是由主机发起. 串口模式接线图: 使用 ...

  8. 【arduino】DFPlayer Mini MP3音乐播放模块arduino音乐播放模块

    昨天看到群里有朋友问音乐播放模块DFPlayer Mini,想起了在家里吃灰的这个模块还没试过,于是今天找了出来简单测试了一下,挺简单的,比TMRpcm省事,价格也非常便宜,还是很推荐使用的. 模块引 ...

  9. Python3 超好用的音频播放模块 playsound

    Python3 超好用的音频播放模块 playsound 前言 playsound模块介绍 一.模块安装 二.使用 三.使用中遇到大坑:文件无法解除占用! 前言 python2有个很好用的音频播放模块 ...

最新文章

  1. Paxos的工程实践
  2. RabbitMq简单应用
  3. copy模块中的copy与deepcopy的区别
  4. bigdecimal类型数据的min方法
  5. java.util.concurrent简介
  6. python:数据库连接操作入门
  7. 魔板(信息学奥赛一本通-T1449)
  8. 死磕算法!35 篇算法设计实例+6 本超赞好书打包送你
  9. 【多模态】来自Facebook AI的多任务多模态的统一Transformer:向更通用的智能迈出了一步...
  10. python程序中name的作用_python编程中的if __name__ == '__main__': 的作用和原理
  11. 系统调用之lseek
  12. Linux操作系统 (二)下载以及安装
  13. java 字符串常量_Java字符常量详解
  14. mdpi Algorithms 期刊word 模板下载
  15. IOS 蓝牙相关-BabyBluetooth蓝牙库介绍(4)
  16. [生存志] 第43节 齐文姜齐宣姜争艳
  17. CPU乱序发射与内存屏障
  18. Merriam-Webster's Vocabulary Builder 学习笔记 Unit 18
  19. axios get带参数的请求方法
  20. java 英文单词命名缩写_java程序员英文单词缩写和解释

热门文章

  1. jep290涉及jdk版本_JDK 13中的JEP 355文本块
  2. java 键入_在Java中键入Safe SQL
  3. hello world_建立无服务器的“ Hello World”功能
  4. hazelcast_HazelCast的Spring-Boot和Cache抽象
  5. 侬娜·杰尔_杰尔·地狱
  6. 性能测试中脚本怎么写_脚本在流程中的性能影响
  7. 服务网格:Istio和AWS App Mesh
  8. java六大原则_六大Java功能
  9. gradle spring_使用Gradle的简单Spring MVC Web应用程序
  10. mongodb身份验证_MongoDB身份验证