代码拉取完成,页面将自动刷新
simple Message Queue(以下简称simpleMQ)设计用来实现一个支持消息推送的中间件
simpleMQ基于redis和fastjson实现消息队列,频道订阅,K-V表,
API在线文档(javadoc) : https://apidoc.gitee.com/l0km/simplemq
消息队列被设计成producer/consumer模型
频道订阅被设计成publisher/subscriber模型
K-V表
RedisFactory.java用于创建上述的类的实例
RedisConsumer示例
public class TestRedisConsumer {
private static final Logger logger = LoggerFactory.getLogger(TestRedisConsumer.class);
@Test
public void testRedisConsumer(){
RedisConsumer consumer = RedisFactory.getConsumer(JedisPoolLazy.getDefaultInstance());
Channel<String> list1 = new Channel<String>("list1",String.class,new IMessageAdapter<String>(){
@Override
public void onSubscribe(String t) throws SmqUnsubscribeException {
logger.info("{}:{}","list1",t);
}} );
Channel<String> list2 = new Channel<String>("list2",String.class,new IMessageAdapter<String>(){
@Override
public void onSubscribe(String t) throws SmqUnsubscribeException {
logger.info("{}:{}","list2",t);
}} );
Channel<String> list3 = new Channel<String>("list3",String.class,new IMessageAdapter<String>(){
@Override
public void onSubscribe(String t) throws SmqUnsubscribeException {
logger.info("{}:{}","list3",t);
}} );
consumer.register(list1,list2);
consumer.register(list3);
consumer.unregister(list1);
}
}
RedisSubscriber示例
public class TestRedisSubscriber {
private static final Logger logger = LoggerFactory.getLogger(TestRedisSubscriber.class);
@Test
public void test() {
RedisSubscriber subscriber = RedisFactory.getSubscriber(JedisPoolLazy.getDefaultInstance());
Channel<String> chat1 = new Channel<String>("chat1",String.class,new IMessageAdapter<String>(){
@Override
public void onSubscribe(String t) throws SmqUnsubscribeException {
logger.info("{}:{}","chat1",t);
}} );
Channel<String> chat2 = new Channel<String>("chat2",String.class,new IMessageAdapter<String>(){
@Override
public void onSubscribe(String t) throws SmqUnsubscribeException {
logger.info("{}:{}","chat2",t);
}} );
Channel<String> chat3 = new Channel<String>("chat3",String.class,new IMessageAdapter<String>(){
@Override
public void onSubscribe(String t) throws SmqUnsubscribeException {
logger.info("{}:{}","chat3",t);
}} );
subscriber.register(chat1,chat2);
subscriber.register(chat3);
subscriber.unsubscribe(chat1.name);
subscriber.unsubscribe();
}
}
simpleMQ is released under the BSD 2-Clause license.
@article{10km,
Author = {Gu,YaDong 10km0811@sohu.com},
Title = {simpleMQ: simple Message Queue},
Year = {2017}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型