假设在实时中,使用ScheduledExecutorService每分钟运行以下代码。
此作业由startBatch.sh文件触发。
public class TestScheduledExecutorService {
public static void main (String a[]) {
ScheduledExecutorService service = null;
try {
TestObject runnableBatch = new TestObject() {
int i = 0;
@Override
public void run() {
testMethod (++i);
}
};
service = Executors.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(runnableBatch, 0, 20, TimeUnit.SECONDS);
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果存在任何问题,如何在现场后正确停止此守护程序进程?!
答案 0 :(得分:1)
你必须考虑添加一个你可以调用的方法"不知何故"告诉服务停止。例如,您的"服务"可能正在侦听某个端口并从那里接收命令。
是的,这是相当广泛的,但您的输入问题也是如此。
鉴于你的意见:在这里只听一个选项。这实际上取决于您的要求。它不需要是一个端口 - 您可以使用文件观察器服务,只需检查在目录中创建的文件。您需要的是:用户可以用来与您的服务器通信的频道。这个频道是怎样的;由你决定。
创建服务时就是这样:您必须直接满足您的要求,然后设计符合这些要求的解决方案。