我有一个 Grails 应用程序,它从 .csv 获取输入并对每一行进行 SOAP 调用以将数据添加到外部系统。该过程适用于较小的数据集,例如 200 条记录。但是,对于更大的数据集,该过程将随着没有明显问题的情况出现,然后第二个“实例”将启动并与初始实例并行运行。这导致我在外部系统中有重复的条目。我不确定发生重复的确切阈值是多少。
过去,我在使用 ColdFusion 应用程序时遇到了几乎相同的问题。该应用程序将通过 Web 服务调用获取 xml 输入,遍历 xml 中的电子邮件收件人,然后发送电子邮件。文件中有 500 个收件人,电子邮件将毫无问题地发送出去。但是,在文件中有 10000 个收件人的情况下,有时会在进程运行和电子邮件发送的地方发生相同的“重复”问题,然后第二个“实例”将在列表的开头启动并开始发送重复电子邮件。
由于我已经在两个不同的环境中观察到这个问题,它们都在它们的基础上共享 java,我认为问题出在我的 java 环境的调整中。有人可以指出我应该在环境中查看什么以解决此问题的正确方向吗?或者,如果您认为问题出在环境以外的地方,我还应该注意什么?我知道代码只做你告诉它做的事情,但我 100% 确定代码中没有任何内容告诉进程在中间进程中第二次启动。如果代码有问题,它一定是类似于导致内存泄漏的代码或类似的东西。