Posts tagged: jms

实现groovy通过队列消息转换视频

上文实现转换视频的最简单groovy程序实现了简单的转换视频功能,只能根据参数做一次转换。需要实现的需求是,跑在后台,根据要求转换视频。 可以自己实现这样的生产者消费者模式,实现一个队列机制,然后启动线程阻塞在空队列上,有生产者放到队列里一条消息,比如转换test.mov为test.mp4,然后线程得到通知消费这个消息,并从队列中删除消息。 这个思路是好的,但是不需要自己写这些代码,可以借助第三方API,使用JMS,这里用到的是JMS的开源免费实现ActiveMQ。具体安装参见tomcat下部署activemq。 好处是省去了自己写底层代码和相关的测试维护工作。而且,activemq自带web管理界面,我们可以先实现消费者(也就是转换视频功能),而通过web管理界面手工生成消息。 生成一条消息,消息正文很简单: test.mov;test.mp4 分号隔开,前者是需要转换的视频文件路径,后者是转换的文件路径。 在activemq的web console中填写并发送这条消息。 日志引用groovy实现监控目录的基本功能    发送文章为PDF   

星期三 十一月 25th, 2009 in , , , | No Comments »

为groovy原型增加前端同步接收消息示例

groovy原型的前端部分,手机端会通过http定时发送请求并获取相应。从jms队列中取走一个消息。这个过程,因为是http协议,不能保持连接,因此只能同步的获取jms消息。 增加的代码见sms_send.gsp:    发送文章为PDF   

星期二 十一月 24th, 2009 in , , | No Comments »

groovy原型修改了个别地方

groovy原型修改了个别地方,比如队列名称,原来叫myqueue,改为inbound,入站的意思,这样比较符合需求。出站队列outbound,因为是和手机号对应的,因此增加了手机号,比如13701234567的出站队列就是outbound-13701234567。 代码见: http://easymorse.googlecode.com/svn/tags/sms-service_1.1/    发送文章为PDF   

星期一 十一月 23rd, 2009 in , , , | No Comments »

简化groovy原型的jms消费者部分

在groovy原型监听ServletContext的属性变化中,jms消费者部分,被复杂化了。另外,groovy原型增加收到jms消息后发送确认消息的示例中的关闭消费者进程的方式也复杂了。现在做了一个改善这个的原型。 基本思路就是消费者还是单起进程处理,并且可以通过操作系统普通的方式杀掉这个进程。和web应用部分没有直接的耦合关系。 由于这两个应用程序,分别扮演着生产者和消费者的角色,即独立又有关联,比如类库依赖基本一样。因此考虑使用maven的多模块方式,即在一个maven项目中包含多个子项目,父项目包含子项目都需要的类库依赖关系和其他共享信息。 在本示例中,有一个父项目,两个子项目,分别是front-end,用于web应用,back-end,用于消费者部分。 日志引用实现groovy通过队列消息转换视频    发送文章为PDF   

星期五 十一月 20th, 2009 in , , | No Comments »

groovy原型增加收到jms消息后发送确认消息的示例

源代码见: http://easymorse.googlecode.com/svn/tags/groovy.proto.1.4/ 主要修改的是两部分代码: 通过hello.gsp增加发送xml文本消息的代码,具体写法可参见groovy生成xml; 主要部分,修改TestScript.groovy文件。 日志引用简化groovy原型的jms消费者部分groovy原型监听ServletContext的属性变化groovy原型调试上的处理    发送文章为PDF   

星期四 十一月 19th, 2009 in , , , | No Comments »

groovy原型增加接收消息示例

前文groovy开发原型增加jms发送消息示例已经增加了发送消息的示例。一般jms应用,采取的是同步的发送,异步的接收。这里考虑通过单独的进程实现异步接收jms消息功能。 使用groovy脚本,类似sh脚本,在操作系统下可直接启动运行,实现这些,需要: 在操作系统中安装groovy,比如在ubuntu下手工安装groovy 编写脚本文件,参考ubuntu建立简单的groovy环境的编写groovy脚本部分 异步接收进程会在后台启动,一直监听队列的消息,收到消息后做后续处理。那么如何关闭该进程呢?这里采用一个简单的办法,创建一个shutdown主题(topic),该进程订阅这个主题,如果从主题收到消息,就立即关闭进程。 日志引用简化groovy原型的jms消费者部分    发送文章为PDF   

星期一 十一月 16th, 2009 in , , | No Comments »

groovy开发原型增加jms发送消息示例

通过jms消息队列,可以可靠传输消息,另外,可以异步传输,简化编程模型。在为groovy原型增加sql示例原型基础上,增加了对jms的支持,并且写了个发送的简单示例。 示例运行效果: 消息服务器使用了activemq,需要提前部署一个activemq-web-console的war文件到tomcat中,这样不但可以提供activemq消息服务器,还带一个web界面的监控应用。类似这样: 日志引用groovy原型增加接收消息示例    发送文章为PDF   

星期四 十一月 12th, 2009 in , , , | No Comments »

tomcat下部署activemq

activemq可以单独部署和执行,比如类似ActiveMQ的最简单应用中提到的安装和执行方式。但是有时候需要作为一个web应用部署在servlet容器中,这样利于和其他web应用的配合。 官方文档上有一个针对这种需求的文档: http://activemq.apache.org/web-console.html 日志引用实现groovy通过队列消息转换视频groovy开发原型增加jms发送消息示例编写camel最简单的示例    发送文章为PDF   

星期二 七月 14th, 2009 in , , | 1 Comment »

通过spring开发ActiveMQ简单应用

使用spring的支持类开发JMS程序可以简化代码,确保开发质量。以下是使用ActiveMQ作为JMS实现的示例。 首先需要确保如下类库,这里使用maven的pom: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>2.5.6</version> </dependency> <dependency> <groupId>org.apache.xbean</groupId> <artifactId>xbean-spring</artifactId> <version>3.5</version> </dependency> <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-core</artifactId> <version>5.2.0</version> </dependency> 日志引用ActiveMQ的自动发现以及简单认证    发送文章为PDF   

星期一 七月 6th, 2009 in , , | No Comments »

ActiveMQ的最简单应用

有一段时间不使用JMS了。现在的项目又有可能需要应用JMS,来提高服务质量和提高系统资源的利用率。 提高服务质量,主要是保证不间断的服务。用JMS服务器接收任务,排成队列。应用服务可以暂停做维护,不影响接收的任务。应用服务运行后,再从队列中获取任务。 提高系统资源的利用率,主要是任务的派发不是24小时平均的,而是高峰时期任务量很多,比如1秒1000多个,有的时候很低,比如十几秒钟才来一个。应用服务通过JMS队列一个一个的取任务,做完一个再领一个,使系统资源的运用趋于平均。而JMS,比如JMS接收消息的效率是很高的,比如ActiveMQ,在赛扬(2.40GHz)机器上能够达到2000/s,消息大小为1-2k。好一些的服务器可以达到2万以上/秒。 日志引用tomcat下部署activemq    发送文章为PDF   

星期五 七月 3rd, 2009 in , , | No Comments »