微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使应用程序的不同实例读取不同的文件进行处理?

如何解决如何使应用程序的不同实例读取不同的文件进行处理?

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

解决方法

取决于几件事:

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。