首页 > 其他 > 详细

订单入库后异步推送

时间:2019-08-29 17:29:53      阅读:93      评论:0      收藏:0      [点我收藏+]

 

    @Autowired//注入ConfigurableApplicationContext 
    private ConfigurableApplicationContext context;


private void push(Order order){
            insertOrder(order);
            //消息通知新增订单
            context.publishEvent(new OrderInsertEvent(order));          
}
                  
/**
 * 订单插入事件
 */
public class OrderInsertEvent extends ApplicationEvent {
    public OrderInsertEvent(Order order) {
        super(order);
    }
}
@Log4j2
@Component
public class OrderInsertListener {

    @Autowired
    @Lazy
    private OrderNoticeService orderNoticeService;


    @EventListener
    public void onApplicationEvent(OrderInsertEvent event) {
        Order order = (OrderBasicRequestEntity) event.getSource();
        //消息推送订单入库通知
        orderNoticeService.notice(order);
    }
}
public interface OrderNoticeService {
    void notice(Order order);
}    
@Service
@Log4j2
public class OrderNoticeServiceImpl implements OrderNoticeService {

    @Async//开启异步
    @Override
    public void notice(Order order) {
        log.info("通知其他服务 :" + order.getId());
     try {
        //执行通知代码,try住异常,不让异常影响其他通知执行
          } catch (Exception e) {
            log.error("质控部分添加出错:", e);
          }
    }
}

订单入库后异步推送

原文:https://www.cnblogs.com/huanghuanghui/p/11430837.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!