我有一个 Java 应用程序可以处理 X 个文本文件。文件处理结束后,它将文件传输到目标文件夹。
我有一个 bash 脚本,它从目标文件夹中挑选文件并在预定时间将它们发送到另一台服务器。
我必须在 Java 应用程序和 shell 脚本之间实现同步。可能吗?
最佳答案
I have to implement synchronization between the Java application and the shell script. Is it possible?
您可以执行隐式操作,例如:Java 应用程序将一个标记 文件(如processing-files-now.txt
)放入目标目录。为了更好地调试,该文件可能包含当前处理的文件数。
当 Java 应用程序完成处理后,它可以进入并删除那个标记文件。
然后脚本可以检查该文件是否存在(以便在 java 应用程序添加新文件时不开始传输文件)。
另一方面,真正的问题可能是:Java 应用程序启动 而脚本正在传输文件。如果您真的想避免这种情况,您也可以让脚本写入这样的文件。
但请注意,这种“基于文件系统”的同步并不是很可靠,随着时间的推移可能会给您带来各种麻烦。
这真的取决于“规模”。对于小型设置,当两个程序并行工作时,出现严重问题的可能性很小,甚至不会产生可怕的后果……以上可能会。
但在更真实的场景中,你应该以不同的方式做这些事情。
关于java - 如何实现java应用程序和shell脚本之间的同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58556941/