要做一个定时任务,数据处理系统会每隔一段时间生成一个文件,我要每隔一段时间拿取最新的,看过几种做法,
有说每读一个就把文件移走让文件目录只保留一个新的,可这样不太行。
还有说把文件目录的已有文件放进内存,等下次定时任务对比本地目录是不是比内存中存的多了,这种我感觉可以但有点麻烦,有什么更好的做法吗
要做一个定时任务,数据处理系统会每隔一段时间生成一个文件,我要每隔一段时间拿取最新的,看过几种做法,
有说每读一个就把文件移走让文件目录只保留一个新的,可这样不太行。
还有说把文件目录的已有文件放进内存,等下次定时任务对比本地目录是不是比内存中存的多了,这种我感觉可以但有点麻烦,有什么更好的做法吗
新文件,总得有参照物。
比如文件名,就是你说的两种方式。
还可以通过时间来参照对比,不过创建时间这个东西因主机的时区或文件写入有问题可能导致一些问题。可以通过将时间加到文件名中。比如 20200602001 表示 文件生成者 6月2日生成的第一个文件,读取文件的只需要记录最后读取的文件名即可,每次只要对比文件名。
另外可能需要额外注意的是如果长期生成超大量文件的话,需要定期归档文件,避免文件过多,导致增加扫描消耗。