当前位置: 首页 > 知识库问答 >
问题:

维护已处理文件列表以防止重复文件处理

司马庆
2023-03-14

我正在寻找解决应用程序中存在的一个问题的设计方法的指导。

我们在Java应用程序中安排了作业,并且使用了Quartz调度器。我们的应用程序可以有数千个作业,这些作业执行以下操作:

  1. 扫描文件夹位置以查找任何新文件。
  2. 如果有新文件,则启动关联的工作流以处理该文件。
    null

如有任何指导,将不胜感激。在我看来,对于持续处理新文件的应用程序来说,这是一个常见的用例--因此需要寻找最佳的方法来解决这个问题。

共有1个答案

蒙麒
2023-03-14

如果不处理重复文件对您来说非常重要,那么最好的方法是将文件名存储在数据库中。请记住,这可能会很慢,因为您需要查询每个文件名,或者需要查询所有新文件名。

这就是说,如果您愿意处理可能是重复的新文件,可以做一些替代操作:

  • 将已处理的文件移动到另一个文件夹,以便您的文件夹始终具有未处理的文件
  • 向已处理文件添加自定义属性,并处理不具有该属性的文件。请注意,不是所有文件系统都支持此方法。有关详细信息,请参阅此答案。
  • 保留对上次quartz作业启动时间的引用,并处理该时间之后创建的新文件。
 类似资料:
  • 我们在应用程序中使用Quartz scheduler扫描特定文件夹中的任何新文件,如果有新文件,则启动应用程序中的相关工作流来处理它。为此,我们创建了自定义侦听器对象,该对象与一个作业和一个触发器相关联,该触发器每5分钟轮询一次文件位置。 要求是只处理到达该文件夹位置的新文件,而忽略已经处理的文件。此外,我们不希望文件夹位置随着大量文件而大幅增长(否则会减慢文件夹扫描速度)--所以在工作流结束时,

  • python-magic

  • gulp 暴露了 src() 和 dest() 方法用于处理计算机上存放的文件。 src() 接受 glob 参数,并从文件系统中读取文件然后生成一个 Node 流(stream)。它将所有匹配的文件读取到内存中并通过流(stream)进行处理。 由 src() 产生的流(stream)应当从任务(task)中返回并发出异步完成的信号,就如 创建任务(task) 文档中所述。 const { sr

  • 在我的骆驼应用程序,它是进程文件从ftp服务器。当我测试时,我发现在文件上传期间,同时我的路线开始拾取该文件并做过程。我已经设置了readLock为“changed”,延迟为“60000”,我的文件大约是500M。我错过什么了吗?

  • Web开发中对于文本处理是非常重要的一部分,我们往往需要对输出或者输入的内容进行处理,这里的文本包括字符串、数字、Json、XMl等等。Go语言作为一门高性能的语言,对这些文本的处理都有官方的标准库来支持。而且在你使用中你会发现Go标准库的一些设计相当的巧妙,而且对于使用者来说也很方便就能处理这些文本。本章我们将通过四个小节的介绍,让用户对Go语言处理文本有一个很好的认识。 XML是目前很多标准接

  • 我正在处理IDE中制作一个Java处理项目,并希望将其传播到多个PDE(处理源代码)文件中。 我无法使用导入将Java处理源代码文件导入为Java类文件。 <代码>配置。pde <代码>项目。pde 返回导入项目/配置无法解析 分别为。 我必须先编译PDE文件吗?是否可以将处理IDE设置为每次运行都自动执行? 太长,读不下去了 拥有此项目文件夹: 如何使用配置中的函数和变量。项目中的pde。pde