我的应用程序中有一个用于上传文件的servlet。然后我想处理可能需要5分钟的文件。通过在servlet中使用此代码,我可能阻止传入的请求?无论哪种方式,我认为我更愿意创建一个后台作业来处理文件。处理此问题的最佳方法是什么?我的应用程序在Tomcat上运行。
答案 0 :(得分:-1)
我建议在这里使用多线程:
一个线程会注意读取文件的每一行并将其插入到BlockingQueue中以便进行处理。 另一个线程将从此队列中获取元素并处理它们。 要实现这个多线程工作,最好使用ExecutorService接口并传递Runnable实例,每个实例应该实现每个任务。记住只有一个任务来读取文件。
我建议永远不要在servlet中做繁重的工作。相反,触发异步任务,例如通过JMS电话