我必须使用java和springboot构建一个服务,它将负责通过api轮询应用程序,直到满足条件为止。所以我正在发送post请求,应用程序必须做些什么。然后我向这个应用程序发送get请求并获取数据。我在检查任务是否完成。如果没有,我需要再发送一次这个get请求,例如每10秒发送一次。如果分析完成,那么我应该停止轮询。我尝试过使用调度程序,但检查条件时出现问题。runnable对象无法返回任何值,因此我无法在适当的时间取消任务。第二件事是,我可以有多个任务在同一时间进行投票。你知道我怎样才能解决我的问题吗?
1条答案
按热度按时间xxe27gdn1#
我想有两个选择:
每次发送post时,请将请求的详细信息保存在表中。使用@scheduled注解,一旦x秒,您就可以查询该表并为所有尚未处理的请求调用get api。一旦处理了请求,您就可以更新表中的状态,这样下次就不会接收它了。
每次发送post请求后,使用threadpoolexecutor添加一个线程,该线程将轮询get api。编辑:现在有了完整的图片,我认为您应该为这两个选项保留请求的详细信息,因为如果出现问题,您需要将详细信息保存在某个地方以备将来重试。