• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

quick-queue-redis: 通过redis队列实现的消息队列

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

quick-queue-redis

开源软件地址:

https://gitee.com/yangyale/quick-queue-redis

开源软件介绍:

消息队列

基于redis实现的消息队列

依赖

<dependency>    <groupId>com.ipet</groupId>    <artifactId>quick-queue-redis</artifactId>    <version>1.0-SNAPSHOT</version></dependency>

环境

使用spring redis配置spring.redis.password=wIvJt@_redisspring.redis.database=1spring.redis.sentinel.master=sharddev6389spring.redis.sentinel.nodes=192.168.11.29:26002,192.168.11.32:26002,192.168.11.20:26002#redis IO 10 ms 超时spring.redis.timeout=1000spring.redis.pool.max-active=-1

调用

生产者
    //通过RedisQueueScanner注入消息队列接口    @RedisQueueScanner("com.ipet.test.queue")    @Configuration    @SpringBootApplication    public class ServiceExecutor {            public static void main(String[] args) throws InterruptedException {            new SpringApplication(ServiceExecutor.class).run(args);            new CountDownLatch(1).await();        }    }        //通过RedisQueue接口定义消息队列生产者interface    //通过RedisQueueProvider接口定义生产者队列名称    @RedisQueue    public interface TestQueue {            @RedisQueueProvider("queue1")        void sendMessage1(String msg);            @RedisQueueProvider("queue2")        void sendMessage2(List<String> msgList);    }        //消息发送    @Component    @EnableScheduling    public class QueueTask {        @Autowired        private TestQueue testQueue;            @Autowired        private TestQueue1 testQueue1;            @Scheduled(cron = "0/5 * * * * ?")        public void queue1Task(){            //定义好消息队列的接口可直接调用,不需要管实现,实现由代理完成            testQueue.sendMessage1("Msg:[" + (int)(Math.random() * Integer.MAX_VALUE) + "]");        }            @Scheduled(cron = "0/10 * * * * ?")        public void queue2Task(){            testQueue.sendMessage2(Arrays.asList("Hello ","World."));        }            @Scheduled(cron = "0/5 * * * * ?")        public void queue3Task(){            testQueue1.sendMessage1("Msg:[" + (int)(Math.random() * Integer.MAX_VALUE) + "]");        }            @Scheduled(cron = "0/10 * * * * ?")        public void queue4Task(){            testQueue1.sendMessage2(Arrays.asList("Hello ","World."));        }    }
消费者
    //继承AbstractRedisQueueConsumer并通过RedisQueueConsumer注解标明队列名称即可    @RedisQueueConsumer("queue1")    public class Message1Consumer extends AbstractRedisQueueConsumer<String> {        private Logger logger = LoggerFactory.getLogger(getClass());        @Override        public void doConsume(String message) {            logger.info("Message1 : [{}]",message);        }    }

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap