Java 如何检查状态并取消异步任务?

Java 如何检查状态并取消异步任务?,java,spring,spring-boot,spring-mvc,asynchronous,Java,Spring,Spring Boot,Spring Mvc,Asynchronous,目前,我正在开发一个RESTAPI,通过它,客户端可以提交一个永远运行的任务,如果没有错误,它应该返回started确认。客户应该能够提交任意数量的类似任务。应该有一个功能来检查状态和取消任何任务。目前,我正在尝试使用Spring在Java中实现它。我应该如何处理这个问题 每次发送post请求时,我都能够在Spring中创建一个异步任务。但到目前为止,还无法确定如何检查状态并取消任何任务。您可以在此处使用的线程。 创建负责运行任务的作业执行器类。 打个电话。所以,你将能够在未来得到结果 使用Bl

目前,我正在开发一个RESTAPI,通过它,客户端可以提交一个永远运行的任务,如果没有错误,它应该返回started确认。客户应该能够提交任意数量的类似任务。应该有一个功能来检查状态和取消任何任务。目前,我正在尝试使用Spring在Java中实现它。我应该如何处理这个问题

每次发送post请求时,我都能够在Spring中创建一个异步任务。但到目前为止,还无法确定如何检查状态并取消任何任务。

您可以在此处使用的线程。 创建负责运行任务的作业执行器类。 打个电话。所以,你将能够在未来得到结果

使用BlockingQueue对任务进行存储并从中进行拾取(您应该这样做,因为处理器是双/4核的)

使用运行时类获取可用的内核,并在Cores-1中运行线程。 螺纹数量=可用芯数-1


对于取消,您可以使用映射到已存储线程的标志。检查该标志并返回线程是否在任何时间点启动

,方法是为每个任务生成唯一标识符并将其存储在某个集合或映射中。如果要取消任务,请提交其标识符,在集合或映射中找到该标识符,然后取消(并将其从集合中删除)。您的问题非常广泛。我看到其中至少隐藏着以下不同的问题:1。如何使用Spring运行异步任务。2.如何使用Spring取消任务。3.如何使用Spring报告未终止任务的进度。如果通过web界面通过必要的信息进行通信是一个问题,那么这可能是另一个问题。我建议为每一个问题创建单独的问题。还请说明您曾试图自己解决问题,以及这些尝试的结果。这将增加你得到有用答案的机会。