PHP 通過Spreadsheet匯出Excel檔案
阿新 • • 發佈:2022-05-30
title: rabbitmq
date: 2022-11-29 19:02:37
tags:
使用
pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
加配置
spring: rabbitmq: host: 192.168.1.160 port: 5672 virtual-host: /mall username: mall password: mall publisher-confirms: true #訊息傳送到交換器確認 publisher-returns: true #訊息傳送到佇列確認
設定Vitual Hosts
新增配置類
- 佇列
- 生產者sender
- 消費者eeceiver
@Configuration public class SimpleRabbitConfig { @Bean public Queue hello() { return new Queue("simple.hello"); } @Bean public SimpleSender simpleSender(){ return new SimpleSender(); } @Bean public SimpleReceiver simpleReceiver(){ return new SimpleReceiver(); } }
生產者
public class SimpleSender { private static final Logger LOGGER = LoggerFactory.getLogger(SimpleSender.class); @Autowired private RabbitTemplate template; private static final String queueName = "simple.hello"; public void send() { String message = "Hello World!"; this.template.convertAndSend(queueName, message); LOGGER.info(" [x] Sent '{}'", message); } }
消費者
@RabbitListener(queues = "simple.hello")
public class SimpleReceiver {
private static final Logger LOGGER = LoggerFactory.getLogger(SimpleReceiver.class);
@RabbitHandler
public void receive(String in) {
LOGGER.info(" [x] Received '{}'", in);
}
}
其他地方使用時呼叫生產者的send方法即可
例如controller中
@Controller
public class RabbitController {
@Autowired
private SimpleSender simpleSender;
@RequestMapping(value = "/simple", method = RequestMethod.GET)
@ResponseBody
public String simpleTest() throws InterruptedException {
for(int i=0;i<10;i++){
simpleSender.send();
Thread.sleep(1000);
}
return "ok";
}
}
五種模式
簡單模式
一個生產者,一個消費者,一個佇列
上面那個例子就是簡單模式