//通过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.")); } }
请发表评论