1.采用加注解方式 在方法上加@PostConstruct
//读取阻塞队列,多线程执行
@PostConstruct
public void refundOrder() {
System.out.println("启动tomcat时自动调用");
RBlockingDeque<String> blockingDeque = redissonClient.getBlockingDeque("jiuyang_order_message");
scheduledThreadPoolExecutor.execute(new SendingTask(blockingDeque));
RBlockingDeque<String> blockingDeque2 = redissonClient.getBlockingDeque("jiuyang_order_zhang");
scheduledThreadPoolExecutor.execute(new SendingTask(blockingDeque2));
}
2.采用实现ApplicationRunner接口.重写run方法 ,run方法调用的方法都会在启动tonmcat是时执行
import com.cncbox.mall.consumer.service.impl.RefundOrderServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
/**
* @author : zhang sq
* @date : 2019/8/22 16:02
**/
@Component
public class ApplicationRunnerImpl implements ApplicationRunner {
@Autowired
private RefundOrderServiceImpl refundOrderService;
//tomcat启动执行此方法
@Override
public void run(ApplicationArguments args) throws Exception {
refundOrderService.refundOrder(); //正常订单超时未付款自动关闭
refundOrderService.automatic(); //自动收货
refundOrderService.comment(); //自动好评
}
}