我需要在基于java的spring boot web应用程序中运行一个非常长的进程。该过程包括以下步骤。
现在,整个过程可能需要很长时间。可能需要很多小时甚至可能是几天,因为它包括为每个用户创建pdf文件,然后是大量的数据库更新。
此外,我需要在后台运行此过程,以便其他Web应用程序可以顺利运行。
我正在考虑使用Spring Batch或Messaging Queue。还没有真正使用它们中的任何一个,所以不确定它们是否适用于此类问题,或者哪一个最适合这个问题。
实施此类任务的理想方式是什么?
答案 0 :(得分:0)
如果您无法为要求命名,您希望通过框架/库满意,您很可能不会需要一个......
生成PDF可能需要很多功能,您可能希望将此后台进程远离其自己的计算机上的主Web应用程序。
如果它是一个简单的Java过程,它通常更容易控制并在您的环境中移动它。
对我而言,这对于"普通" java - KISS。或者我错过了什么?
我确保用于从数据库中获取用户的Finder是
答案 1 :(得分:0)
您应该使用弹簧批来完成此过程。当用户按下按钮时,您将异步启动作业。然后它将在一个单独的线程中运行并处理所有记录。可以从作业存储库获取作业的当前状态。弹簧批次用于这种类型的处理。