【问题标题】:How do I make different instances of an application to read different files to process?如何使应用程序的不同实例来读取要处理的不同文件?
【发布时间】:2021-03-30 10:14:23
【问题描述】:

我有一个从特定位置读取文件并对其进行处理的应用程序。现在我的要求是增加应用程序的实例数。如何确保每个实例不会选择相同的文件?有没有办法让每个实例从同一个文件位置选择不同的文件?请提出建议。

【问题讨论】:

    标签: pcfdev


    【解决方案1】:

    取决于几件事:

    1. 您的应用程序是如何触发的?如果您使用的是 spring 批处理调度程序之类的东西,那么这会引起担忧,因为所有实例都会被触发并且多个实例可以获取相同的文件。因此,您需要在应用程序中设置一些逻辑来仅触发 1 个实例,例如在表中创建一个条目并在处理开始时锁定表,以便另一个触发器在找到可用表之前不会运行。确保仅针对一个实例更新和锁定表,以避免多个触发器。您可以通过其他几种方式进行管理。

    2. 如果您的应用程序被其他进程触发,那么 go-router 将在循环的基础上一次仅触发 1 个实例,但是如果进程需要一些时间并且另一个实例被触发,那么它可能会尝试获取同一个文件。因此,当您拿起文件进行处理时,您可以将文件移动到某个临时位置,这样另一个触发器就不会找到相同的文件。成功处理后 - 可以将其移至“完成”文件夹..

    3. 文件多久会上传到共享位置?如果它非常频繁,最好在应用实例触发后立即移动到唯一的临时文件夹中,并保留暂存文件夹中只包含未选择的文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多