订单入库后异步推送

 

    @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
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值