`
fushcpc
  • 浏览: 22804 次
社区版块
存档分类
最新评论

Job

    博客分类:
  • J2EE
 
阅读更多
package org.apache.activemq.book.ch2.jobs;

import javax.jms.Connection;

public class Producer {

    private static String brokerURL = "tcp://localhost:61616";
    private static transient ConnectionFactory factory;
    private transient Connection connection;
    private transient Session session;
    private transient MessageProducer producer;
    
    private static int count = 10;
    private static int total;
    private static int id = 1000000;
    
    private String jobs[] = new String[]{"suspend", "delete"};
    
    public Producer() throws JMSException {
    	factory = new ActiveMQConnectionFactory(brokerURL);
    	connection = factory.createConnection();
        connection.start();
        session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        producer = session.createProducer(null);
    }    
    
    public void close() throws JMSException {
        if (connection != null) {
            connection.close();
        }
    }    
    
	public static void main(String[] args) throws JMSException {
    	Producer producer = new Producer();
        while (total < 1000) {
            for (int i = 0; i < count; i++) {
                producer.sendMessage();
            }
            total += count;
            System.out.println("Sent '" + count + "' of '" + total + "' job messages");
            try {
              Thread.sleep(1000);
            } catch (InterruptedException x) {
            }
          }
        producer.close();

	}
	
    public void sendMessage() throws JMSException {
        int idx = 0;
        while (true) {
            idx = (int)Math.round(jobs.length * Math.random());
            if (idx < jobs.length) {
                break;
            }
        }
        String job = jobs[idx];
        Destination destination = session.createQueue("JOBS." + job);
        Message message = session.createObjectMessage(id++);
        System.out.println("Sending: id: " + ((ObjectMessage)message).getObject() + " on queue: " + destination);
        producer.send(destination, message);
    }	

}



package org.apache.activemq.book.ch2.jobs;

import javax.jms.Connection;

public class Consumer {

    private static String brokerURL = "tcp://localhost:61616";
    private static transient ConnectionFactory factory;
    private transient Connection connection;
    private transient Session session;
    
    private String jobs[] = new String[]{"suspend", "delete"};
    
    public Consumer() throws JMSException {
    	factory = new ActiveMQConnectionFactory(brokerURL);
    	connection = factory.createConnection();
        connection.start();
        session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    }
    
    public void close() throws JMSException {
        if (connection != null) {
            connection.close();
        }
    }    
    
    public static void main(String[] args) throws JMSException {
    	Consumer consumer = new Consumer();
    	for (String job : consumer.jobs) {
    		Destination destination = consumer.getSession().createQueue("JOBS." + job);
    		MessageConsumer messageConsumer = consumer.getSession().createConsumer(destination);
    		messageConsumer.setMessageListener(new Listener(job));
    	}
    }
	
	public Session getSession() {
		return session;
	}


}



package org.apache.activemq.book.ch2.jobs;

import javax.jms.Message;

public class Listener implements MessageListener {

	private String job;
	
	public Listener(String job) {
		this.job = job;
	}

	public void onMessage(Message message) {
		try {
			//do something here
			System.out.println(job + " id:" + ((ObjectMessage)message).getObject());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

分享到:
评论

相关推荐

    将 xxl-job-admin、xxl-job-core、xxl-job-executor 的源码引入项目中.docx

    xxl-job-admin 作为调度中心,有可视化的web管理界面,可将其作为一个模块以源码的方式引入到我们的项目中,我们可对其进行自定义的修改,但一般不需要;xxl-job-core 是 XXL-JOB的核心,绝大多数情况下我们不用对其...

    xxl-job-core-2.3.0-API文档-中文版.zip

    赠送jar包:xxl-job-core-2.3.0.jar 赠送原API文档:xxl-job-core-2.3.0-javadoc.jar 赠送源代码:xxl-job-core-2.3.0-sources.jar 包含翻译后的API文档:xxl-job-core-2.3.0-javadoc-API文档-中文(简体)版.zip ...

    xxl-job-core-2.3.0-API文档-中英对照版.zip

    赠送jar包:xxl-job-core-2.3.0.jar; 赠送原API文档:xxl-job-core-2.3.0-javadoc.jar; 赠送源代码:xxl-job-core-2.3.0-sources.jar; 赠送Maven依赖信息文件:xxl-job-core-2.3.0.pom; 包含翻译后的API文档:...

    xxl-job-admin-sqlserver.zip

    XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用. http://www.xuxueli.com/xxl-job/#/ 但该项目官方版的数据库...

    解决k8s中xxl-job执行器pod重建后无法读取到执行日志的问题

    xxl-job-admin读取执行日志的逻辑为:向执行了该任务的执行器发送请求,让执行器从本地读取执行日志。但在k8s中,即使将本地文件通过nfs独立存储,在pod重建后也通常会因为ip变更,找不到执行器,导致读取不到执行...

    分布式任务调度平台XXL-JOB(Oracle版)

    这里分享自己已经跑起来的Oracle版本分布式任务调度平台XXL-JOB资源。 官方只有Mysql版本的DEMO,由于近期单位项目需要,将原来DEMO稍作修改后改成了oracle版本,主要修改工作包括修改配置文件,数据库连接方式,pom...

    分布式调度任务架构elastic job的spring-boot-starter自动装载模块

    elastic job是当当网开源的基于quartz的分布式调度框架,通过zookeeper实 现分布式协调,加上支持分片、日志追踪、任务管理UI、高可性被大家熟知。 2.目前新的项目基本都是spring boot,如何通过约束、配置方式...

    python基于51job数据可视化图表展示源码.zip

    python基于51job数据可视化图表展示源码,基于51job工作招聘数据可视化图表展示 web 数据挖掘,ECharts可视化。python基于51job数据可视化图表展示源码,基于51job工作招聘数据可视化图表展示 web 数据挖掘,ECharts...

    elastic-job-lite-console-3.0.0.M1-SNAPSHOT.rar

    当当elastic-job控制台jar包,elastic-job-lite-console-3.0.0.M1-SNAPSHOT,本人从git下载源码后编译生成的jar。 $ 解压 elastic-job-lite-console-3.0.0.M1-SNAPSHOT.rar $ cd elastic-job-lite-console-3.0.0.M1-...

    Quartz-Job-Scheduling-Framework-中文版-V0.9.1.zip

    内容提要:JobListener (Job 监听器) 的介绍和使用方法,代码演示了如何注册了全局 Job 监听器和非全局 Job 监听器。 第七章. 实现 Quartz 监听器 (第三部分) 内容提要:TriggerListener (Trigger 监听器) 的介绍和...

    job shop -matlab program

    job shop matlab program ,su

    基于python的51job工作岗位数据分析与可视化-交互式数据可视化期末作业项目.zip

    数据源:基于51job招聘网站爬取的数据 51job招聘网 二、数据分析目标 全国各省的平均月薪情况、岗位分别情况 学历需求情况 工作经验与岗位数量相关情况 福利待遇情况 相关岗位描述 三、数据价值 1.有相关岗位需求的...

    SpringCloud+MybatisPlus+XXL-JOB+redis+Vue前后端分离、分布式、微服务架构Java商城系统

    Smart Shop是一款基于 Spring Cloud +MybatisPlus+XXL-JOB+redis+Vue的前后端分离、分布式、微服务架构的Java商城系统,采用稳定框架开发及优化核心,减少依赖,具备出色的执行效率,扩展性、稳定性高,H5/小程序/...

    xxl-job数据库配置文件

    xxl-job数据库配置文件

    quartz job持久化

    实现把job持久化数据库,里面有具体的说明文档 Quartz 1 1 通过quartz创建持久化定时执行任务 3 1.1 首先创建一个基本的web工程,所需jar包 3 1.2 Quartz配置文件quartz.properties 4 1.3 创建job 6 1.3.1 实现org....

    导出ORACLE - JOB

    从oracle库中导出自定义的job脚本。

    xxl-job oracle 适配版本

    基于最新 xxl-job 2.3.0 版本编写的 oracle 数据库适配版本

    XXL-JOB分布式任务调度系统培训PPT

    XXL-JOB分布式任务调度系统培训PPT

    elastic-job-lite-console.zip

    Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。Elastic-Job-Lite定位为轻量级无中心化解决方案,使用jar包的形式提供分布式任务的协调服务;Job-Cloud采用...

    Java分布式Elastic-Job和Quartz定时任务课程(1.6G)

    11_Elastic-Job框架介绍.mp4 12_初识Elastic-Job.mp4 13_急速入门Simple-1.mp4 14_急速入门Simple-2.mp4 15_急速入门dataflow.mp4 16_急速入门script.mp4 17_知识点检测与小结.mp4 18_Simple作业的3种整合方式介绍....

Global site tag (gtag.js) - Google Analytics