搜索
首页数据库mysql教程activeMQ发布订阅模式中中常用工具类

package com.jms;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import javax.jms.BytesMessage;import javax.jms.Connection;import javax.jms.ConnectionFactory;import javax.jms.Destination;import javax.jms.JMSException;impo

package com.jms;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import javax.jms.BytesMessage;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.clapper.util.logging.Logger;

import com.pzoom.dsa.common.util.Log;
import com.pzoom.dsa.nerd.mysql.DBQueryHelper;

public class Jms
{
  static ConnectionFactory connectionFactory;
  static Connection connection = null;
  static Session session;
  static Map<String, MessageProducer> sendQueues = new ConcurrentHashMap<String, MessageProducer>();

  static Map<String, MessageConsumer> getQueues = new ConcurrentHashMap<String, MessageConsumer>();

  static Log log=Log.getLogger(DBQueryHelper.class);

  static {
    connectionFactory = new ActiveMQConnectionFactory(
      ActiveMQConnection.DEFAULT_USER, 
      ActiveMQConnection.DEFAULT_PASSWORD, 
      "tcp://10.100.100.100:61616?wireFormat.maxInactivityDuration=0");
    try
    {
      connection = connectionFactory.createConnection();

      connection.start();

      session = connection.createSession(Boolean.FALSE.booleanValue(), 
        1);
    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }

  static MessageProducer getMessageProducer(String name) {
    if (sendQueues.containsKey(name))
      return ((MessageProducer)sendQueues.get(name));
    try
    {
      Destination destination = session.createQueue(name);
      MessageProducer producer = session.createProducer(destination);
      sendQueues.put(name, producer);
      return producer;
    } catch (JMSException e) {
      e.printStackTrace();
    }

    return ((MessageProducer)sendQueues.get(name));
  }

  static MessageConsumer getMessageConsumer(String name) {
    if (getQueues.containsKey(name))
      return ((MessageConsumer)getQueues.get(name));
    try
    {
      Destination destination = session.createQueue(name);
      MessageConsumer consumer = session.createConsumer(destination);
      getQueues.put(name, consumer);
      return consumer;
    } catch (JMSException e) {
      e.printStackTrace();
    }

    return ((MessageConsumer)getQueues.get(name));
  }

  public static void sendMessage(String queue, String text) {
    try {
      TextMessage message = session.createTextMessage(text);
      getMessageProducer(queue).send(message);
     // log.info("sendMessage " + queue + "\t\t" + text);
    }
    catch (JMSException e) {
      e.printStackTrace();
    }
  }
  
 
  
  public static String getMessage(String queue)
  {
    try {
      TextMessage message = (TextMessage)getMessageConsumer(queue).receive(10000L);
      if (message != null) 
      return message.getText();
    } catch (JMSException e) {
      e.printStackTrace();
    }
	return null;
  }

  public static void close() {
    try {
      session.close();
    } catch (JMSException e) {
      e.printStackTrace();
    }
    try {
      connection.close();
    } catch (JMSException e) {
      e.printStackTrace();
    }
  }
}

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
PHP8.1发布:引入curl多个请求并发处理PHP8.1发布:引入curl多个请求并发处理Jul 08, 2023 pm 09:13 PM

PHP8.1发布:引入curl多个请求并发处理近日,PHP官方发布了最新版本的PHP8.1,其中引入了一个重要的特性:curl多个请求并发处理。这个新特性为开发者提供了一个更加高效和灵活的方式来处理多个HTTP请求,极大地提升了性能和用户体验。在以往的版本中,处理多个请求往往需要通过创建多个curl资源,并使用循环来分别发送和接收数据。这种方式虽然能够实现目

马自达计划于2024年发布全新马自达6车型马自达计划于2024年发布全新马自达6车型Sep 30, 2023 pm 02:21 PM

马自达公司最近透露了备受期待的计划,据官方消息,全新的马自达6将于2024年上半年正式发布,并计划在同年年底上市销售。这款全新的马自达6将采用全新的后驱平台,为马自达的车型带来全新的驾驶动力体验马自达的欧洲开发与工程负责人JoachimKunz在最近的一次采访中表示,虽然他们正在开发新平台,但这一平台不会被用于生产全新一代的马自达5轿车,也不会用于其他大型运动轿车的制造。这一决策似乎反映了市场需求的变化,因为现今的消费者更加偏好SUV车型,而不是传统的轿车。Kunz进一步指出,尽管六缸发动机和后

最低3999元!消费级真AR眼镜雷鸟X2正式发布最低3999元!消费级真AR眼镜雷鸟X2正式发布Oct 13, 2023 pm 05:25 PM

【CNMO新闻】北京时间10月13日14点,雷鸟科技正式召开了雷鸟创新新品发布会。在此次发布会上,雷鸟为消费者带来了消费级真AR眼镜——雷鸟X2,新品售价4999元,首发用户可享4499元,而所有此前购买过雷鸟产品或者类似友商产品的用户,则可享受3999元的优惠价。雷鸟X2采用无线一体化设计,能够像普通眼镜那般,不会遮挡正常眼神。新眼镜还配备有前置摄像头,拥有5P镜头和1600万像素,可以带来第一视角画面,同时其还支持息屏拍照,只需滑动镜角就可以更好的捕捉那些稍纵即逝的画面。新AR眼镜还配备有光

Java ActiveMQ 的 20 个最佳实践Java ActiveMQ 的 20 个最佳实践Feb 20, 2024 pm 09:48 PM

1.选择合适的客户端传输协议ActiveMQ支持多种客户端传输协议,包括STOMP、AMQP和OpenWire。根据您的应用程序需求选择合适的协议,以优化性能和可靠性。2.配置消息持久性持久性消息即使在服务器重新启动后也能持久化,而非持久性消息则不会。对于关键消息,选择持久性以确保可靠传递。演示代码://设置消息持久性MessageProducerproducer=session.createProducer(destination);producer.setDeliveryMode(Deliv

全国首个DNA存储模型"ChatDNA"亮相发布全国首个DNA存储模型"ChatDNA"亮相发布May 29, 2023 pm 06:31 PM

5月22日消息,今天的中国日期。在浙江嘉善举办的祥符创新论坛转化医学产业高峰论坛取得了圆满成功。据ITBEAR科技资讯了解,该论坛旨在围绕精准医学及生命科学前沿热点问题展开讨论,并分享最新的诊断技术、基因测序等前沿领域的进展,以推动医学产业的健康发展。与会专家汇聚一堂,分享实践经验和创新思路。论坛期间,还举行了重磅发布和联盟签约仪式。上海人工智能研究院、祥符实验室以及转化医学国家科学中心(上海)联合发布了全国首个DNA存储领域预训练大模型——"ChatDNA"。该模型的发布将

RTX5090什么时候发布RTX5090什么时候发布Feb 18, 2024 pm 04:42 PM

50系显卡预计将会在2024年年底进行发布,从第四季开始将会陆续发布,不过50系显卡笔记本预计要等待27年才会进行发售。RTX5090什么时候发布:答:2024年年底之前1、自2024年第四季开始,NVIDIA首推50系列显卡,预计2024年内正式发布,5090与5080预计秋季冬季上市,70和60则定在2025年公布。同期,NVIDIA自产产品预定2023年面世。值得注意的是,50系列笔记型电脑推广需待时日,或需等到2027年前后方能问世。2、目前,初步预计RTX50系列显卡至少要到2024年

如何在uniapp中实现小程序开发和发布如何在uniapp中实现小程序开发和发布Oct 20, 2023 am 11:33 AM

如何在uni-app中实现小程序开发和发布随着移动互联网的发展,小程序成为了移动应用开发的一个重要方向。而uni-app作为一个跨平台的开发框架,可以同时支持多个小程序平台的开发,如微信、支付宝、百度等。下面将详细介绍如何使用uni-app开发和发布小程序,并提供一些具体的代码示例。一、小程序开发前准备在开始使用uni-app开发小程序之前,需要做一些准备工

macOS 文图拉 13.5 测试版 4 发布macOS 文图拉 13.5 测试版 4 发布Jun 29, 2023 pm 12:39 PM

除了为iPhone发布iOS26.6beta4和iPad的iPadOS16.6beta4外,Apple还为Mac发布了macOSVentura13.5beta4。这个新的测试版是在上一个测试版发布两周后发布的。此更新主要包括一系列错误修复和性能改进,它没有任何新功能。由于这是macOSVentura13.5的第四个测试版,因此该软件的最终版本发布应该不会很快,我们预计它将在月的某个时候发布,以前预计在月底之前发布。新的macOS13.5beta4软件现在可供开发人员下载,您可以在Apple网站上

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),