我正在设计一个系统,当一个请求到达web服务器时,请求数据被插入数据库并生成自动递增id。
现在每个请求需要完成x个任务,其中每个任务大约需要0-20秒。
使用自动生成的id作为引用,web服务器将消息发布到messagebroker(rabbitmq),以供并发运行的worker完成每个任务。当任何任务完成时,它的状态在db中通过插入一行来更新。
我想在所有任务完成后更新表(比如设置总请求的状态)。我应该如何处理我的场景?是否有一种方法可以在所有挂起的任务完成时运行查询?
我试着在每个任务完成后检查是否所有其他任务都完成了。如果所有其他的都完成了,那么我更新了表,否则什么也没做。但如果还有两个任务要完成,并且两个任务同时完成并检查,则此操作将失败。两者都将看到1个任务仍处于挂起状态,没有人会更新表。
我在web服务器上使用jdbc和mysql数据库。
请帮忙。
暂无答案!
目前还没有任何答案,快来回答吧!