Java 如何在使用@Async(Springboot应用程序)的方法中实现回调
我需要实现一个类似回调的解决方案,以通知方法调用的成功/失败。我调用的这些方法都在Springboot应用程序中,它们都是异步的。更具体地说,它们都使用Java 如何在使用@Async(Springboot应用程序)的方法中实现回调,java,spring,spring-boot,callback,Java,Spring,Spring Boot,Callback,我需要实现一个类似回调的解决方案,以通知方法调用的成功/失败。我调用的这些方法都在Springboot应用程序中,它们都是异步的。更具体地说,它们都使用@Async注释 我没有成功地找到解决办法,我想知道其他人是否有一些想法。我不能使用另一个异步方法(也就是说,我不能更改现有代码来删除@async,并在其位置上使用一些东西)。但是,我可以修改方法体本身以添加任何回调功能 谢谢。我认为您可以使用两种方法创建一个新接口,然后将实现参数传递给异步方法 public interface TaskCall
@Async
注释
我没有成功地找到解决办法,我想知道其他人是否有一些想法。我不能使用另一个异步方法(也就是说,我不能更改现有代码来删除@async
,并在其位置上使用一些东西)。但是,我可以修改方法体本身以添加任何回调功能
谢谢。我认为您可以使用两种方法创建一个新接口,然后将实现参数传递给异步方法
public interface TaskCallBack {
void success(int code);
void fail(int code);
}
根据M.Derium(上文)的建议,我使用CompletableFuture作为我的解决方案。我仍在实施和测试过程中,但这似乎是一个很好的解决方案。这里有一个很好的参考资料:这就是
未来的意义所在。从@Async
方法返回Future
,并检查结果。但是,要小心,因为这可能会在出错时突然导致阻塞而不是异步!你也可以试试春季活动。它们使用发布者/监听器模型,可以事务性配置,监听器本身也可以是异步的。有关更多信息,请参阅。@M.Deinum我正在使用CompletableFuture,因为您让我注意到了它。我尚未完成执行,但可能会因此更新此票据。谢谢@谢谢你的意见。我正在实现一个完整的未来。谢谢你的输入,我一直在执行一个基于你的建议的解决方案。我不知道该怎么表扬你。我亲自回复了我的帖子,向你点头求助。我不确定这是否是给你信用的正确方式。再次感谢。谢谢你的意见。我正在实现一个完整的未来。谢谢你的意见。