Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如果作业正在运行,则返回值_Java - Fatal编程技术网

Java 如果作业正在运行,则返回值

Java 如果作业正在运行,则返回值,java,Java,我正在尝试制作一个java小作业,将文件从一个文件夹复制到另一个文件夹和一些数据库存储等等。作业从每小时执行一次的脚本运行。我想检查一下java作业,如果作业已经在运行,它可以返回一些值 问题是,我不知道怎么做。有什么建议吗 每小时作业的运行方式如下:“java myjob arg1 arg2”。是否可以检查1小时前启动的作业是否仍在运行 编辑 我只是想了点事。。由于每次运行此作业时都会得到一个新的进程id,因此下面的建议不起作用。我的作业将从另一个脚本运行,如下所示: if ${type} =

我正在尝试制作一个java小作业,将文件从一个文件夹复制到另一个文件夹和一些数据库存储等等。作业从每小时执行一次的脚本运行。我想检查一下java作业,如果作业已经在运行,它可以返回一些值

问题是,我不知道怎么做。有什么建议吗

每小时作业的运行方式如下:“java myjob arg1 arg2”。是否可以检查1小时前启动的作业是否仍在运行

编辑

我只是想了点事。。由于每次运行此作业时都会得到一个新的进程id,因此下面的建议不起作用。我的作业将从另一个脚本运行,如下所示:

if ${type} = ${sys}
    then 
        java batchjob ${type} ${dir1} ${dir2}

您可以查阅processlist,或者更简单的是,您可以在每次启动作业时创建一些文件,并在作业完成后删除,这样就可以检查文件是否存在,并知道进程正在运行(或者进程已崩溃,文件尚未删除)。。。这只是一个想法。

您可以查阅processlist,或者更简单的是,您可以在每次启动作业时创建一些文件,并在作业完成后删除,这样就可以检查文件的存在情况,并知道进程正在运行(或者进程已崩溃,文件尚未删除)。。。这只是一个想法。

每次作业开始时,创建一个锁文件,并将作业的PID放入其中(在Unix上很容易,在Windows或Java上当然可行)。要查看作业是否仍在运行,请从该文件获取PID,并查看它是否仍在当前进程列表中

这样,您就可以判断作业是否仍在运行(即在删除锁定文件之前没有崩溃)


如果您的启动脚本也将在作业完成后删除此文件,则您还可以判断上一次作业运行是否成功完成(文件不在那里)、是否崩溃(文件的PID仍然不存在)或是否仍在运行。

每次作业启动时,创建一个锁定文件并将作业的PID放入其中(在Unix上很容易,在Windows或Java上肯定是可行的)。要查看作业是否仍在运行,请从该文件获取PID,并查看它是否仍在当前进程列表中

这样,您就可以判断作业是否仍在运行(即在删除锁定文件之前没有崩溃)


如果你的启动脚本在任务完成后也将删除这个文件,你也可以知道你的作业的前一次运行是否成功(文件不存在),崩溃(文件中仍然存在一个不存在的PID),或者仍然在运行。这其实还不错!:)我会考虑的,这是肯定的,我非常喜欢!我的问题是,我正在windows计算机上开发,但它将部署在unix计算机上。你知道有没有一种方法可以检查processID,它可以在win和unix上工作?我不知道有哪种方法可以在unix和Windows上工作。当我不得不编写这样一个脚本时,我在Linux机器上开发了它。要在widows上模拟unix shell环境,我会尝试cygwin或虚拟Linux盒(有许多可免费下载的vmware映像)。在Java中似乎还有一些(可能不可靠的)获取PID的方法:。祝你好运。这个,我非常喜欢我的问题是,我正在windows计算机上开发,但它将部署在unix计算机上。你知道有没有一种方法可以检查processID,它可以在win和unix上工作?我不知道有哪种方法可以在unix和Windows上工作。当我不得不编写这样一个脚本时,我在Linux机器上开发了它。要在widows上模拟unix shell环境,我会尝试cygwin或虚拟Linux盒(有许多可免费下载的vmware映像)。在Java中似乎还有一些(可能不可靠的)获取PID的方法:。祝你好运