如何从Java的后台服务发送POST请求?

我目前正在研究一个Java应用程序,该应用程序从表A读取(存储了BLOB),将一些数据从表A写入表B,同时将BLOB数据上传到文件服务器。我在一个测试数据库(大约400行)上测试了该应用程序,并且运行良好。我需要将应用程序实现为后台服务,该服务读取表A并将HTTP POST请求发送到REST服务器,然后插入到表B并上传到文件服务器。POST请求后,服务器需要返回创建的HTTP 202。我尝试过这样的事情:


@POST

@Path("attachments")

public void moveToMinio() throws Exception {

    TiedostoDaoImpl tiedostoDao = new TiedostoDaoImpl();

    List<Integer> id = tiedostoDao.getDistinctCustomerId();

    for (Integer userId : id){

    AttachmentService.insertAndUploadService(userId);

    }

}

tieostoDao.getDistinctCustomerId()返回表A中不同的客户ID的列表,并将该ID传递给for循环内的AttachmentService.insertAndUploadService()。这样就可以完成工作,但是我怀疑这不是正确的方法,因为它返回HTTP 200而不是202。这是发送POST请求的正确方法吗?生产数据库可能有数百万行,在不影响服务器效率的情况下处理所有这些行的正确方法是什么?由于我是Java新手,因此我一直对此感到困惑,并且非常感谢您的帮助/建议。


元芳怎么了
浏览 384回答 2
2回答

幕布斯7119047

请参考此如何在基于servlet的Web应用程序中运行后台任务?在返回响应之前,将作业放入全局队列中,并让后台进程执行该作业。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java