admin
2021-06-26 6b2670dfa68af9ce2e36a5f9580125f4fc6da570
service-push/src/main/java/com/ks/push/PushApplication.java
@@ -1,5 +1,7 @@
package com.ks.push;
import com.ks.push.consumer.mq.PushTaskConsumer;
import com.ks.push.pojo.DO.PushPlatform;
import org.apache.dubbo.config.spring.context.annotation.EnableDubbo;
import org.mybatis.spring.annotation.MapperScan;
import org.slf4j.Logger;
@@ -8,18 +10,49 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import org.yeshi.utils.mq.JobThreadExecutorServiceImpl;
import javax.annotation.Resource;
@SpringBootApplication
@EnableTransactionManagement
@MapperScan(basePackages = "com.ks.push.mapper")
@EnableDubbo(scanBasePackages = "com.ks.push.service.remote")
public class PushApplication {
public class PushApplication implements ApplicationListener<ContextRefreshedEvent> {
    private final static Logger logger = LoggerFactory.getLogger(PushApplication.class);
    @Resource
    private PushTaskConsumer pushTaskConsumer;
    public static void main(String[] args) {
        SpringApplication.run(PushApplication.class, args);
        logger.info("应用启动成功");
    }
    @Override
    public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent) {
        logger.info("容器加载完毕");
        initMQMsgConsumer();
    }
    private void initMQMsgConsumer() {
        final int THREAD_NUM = 3;
        for (PushPlatform pushPlatform : PushPlatform.values()) {
            //创建三条队列处理
            for (int i = 0; i < THREAD_NUM; i++) {
                new JobThreadExecutorServiceImpl().run(new Runnable() {
                    @Override
                    public void run() {
                        pushTaskConsumer.consumeMsg(pushPlatform);
                    }
                });
            }
        }
    }
}