1. 程式人生 > 其它 >PHP 通過Spreadsheet匯出Excel檔案

PHP 通過Spreadsheet匯出Excel檔案

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

新增配置類

  1. 佇列
  2. 生產者sender
  3. 消費者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";
    }
}

五種模式

簡單模式

一個生產者,一個消費者,一個佇列

上面那個例子就是簡單模式