用于Web服务中长时间运行的Java模式

wsb*_*383 4 java

我正在构建一个执行数据库进程的Web服务(运行多个查询的SQL代码,然后在两个非常大的表之间移动数据),我假设某些进程可能需要2到10个小时才能执行.

从Java Web服务中执行长时间运行的数据库进程的最佳实践是什么(它实际上是基于REST的,使用JAX-RS和Spring)?该过程将在1次Web服务调用时执行.预计这次执行将每周进行一次.

提前致谢!

duf*_*ymo 6

它必须是异步的.

由于您的Web服务调用是RPC,因此最好让实现验证请求,将其放在队列中进行处理,然后立即发送回具有令牌或URL的响应以检查进度.

设置JMS队列并注册一个侦听器,该消息器将消息从队列中取出并保留它.

如果这确实需要2-10个小时,我建议您查看架构和查询,看看是否可以加快速度.我敢打赌,某处有一个指数缺失.