【发布时间】:2015-02-01 07:02:45
【问题描述】:
我正在编写一个消息队列,但它运行缓慢,方法 processFile 花费了太多时间,并且文件长时间卡在队列中。如何避免。
System.out.println("Message Reader Started....");
do
{
String directoryPath = "C:\\Queue";
int fileCount = new File(directoryPath).list().length;
if (fileCount < 1) {
System.out.println("Files Not Present");
}
else
{
File[] file = new File(directoryPath).listFiles();
String firstFile = file[0].getAbsolutePath();
processFile(firstFile);
}
} while (true);
【问题讨论】:
-
listFiles() 没有保证顺序,您可能正在读取尚未完全写入的文件。我建议您阅读所有文件(不仅仅是“第一个”文件),只处理那些 10 或 60 秒未更新的文件。
-
不错的小费感谢@PeterLawrey
标签: java performance message-queue