我有一个要求,我需要从rest控制器返回一些状态/长值,然后执行代码以发送推送通知。
@RequestMapping(value="/create")
public String createTicket() throws InterruptedException {
// code to create ticket
return "ticket created";
// need to call sendPushNotifiction() after I return status
}
public void sendPushNotifiction() throws InterruptedException {
// code to send push notification
System.out.println("Sent push notification successfully!!");
}
有人可以告诉我如何实现吗?是否可以为此使用Spring AOP?我认为线程不能保证仅在返回后才执行sendPushNotifiction方法。那么有效实现这一目标的方法是什么?
提前致谢
最佳答案
我认为这可能是异步处理的好用例。 Spring对此具有good support。准确地说,您需要
用sendPushNotifiction
注释@Async
。
用@EnableAsync
注释一些配置类。
在return语句之前调用sendPushNotifiction()
。执行流程将不等待sendPushNotifiction
完成。
如果不起作用,请尝试在单独的服务中编码sendPushNotifiction
。