我使用Java作为我的编程接口。这是我的工作流程。我有一个生产者谁有一个带路径的文件名,并将其添加到队列。然后是消费它的消费者。出队后我将它添加到arraylist然后检查它是否已达到x的计数。如果是,那么我将处理它。到现在为止还挺好。但问题是我在这个列表中有一个文件。在文件列表达到x大小之前,它不会被处理。我希望有一些计时器可以过去,在y分钟后,我想处理文件列表,如果它不是空的。我该如何实现这一目标?我知道计时器任务,计划执行程序,但它在预定时间后运行一个线程,这不是我的情况。如果您需要,我可以提供更多详细信息。如果我的设计错误,请告诉我,谢谢你的帮助。
答案 0 :(得分:1)
每次尝试出列时,请检查在使用上一个文件时设置的时间戳。如果该时间戳大于您的阈值时间并且您在队列中有n个文件(其中n 伪码:timestamp <= now
every k milliseconds:
check the number of files n in queue:
if n >= x:
consume the files
update timestamp (to "now")
else if (now - timestamp > time-threshold):
consume the files
update timestamp (to "now")