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