Apache Web Server를 사용하여 외부 응용 프로그램을 시작합니다. 높은 수준에서 사용자는 매개 변수를 지정하고 POST로 응용 프로그램을 시작한 다음 언제든지 응용 프로그램을 취소 할 수있는 상태 페이지를 갖게됩니다 (며칠 동안 실행될 수 있음).하나의 요청에 대해 webserver에서 다른 프로그램을 실행하고 나중의 요청에 따라이를 종료하십시오.
나는 같은 비동기 적으로 응용 프로그램을 시작 해요 :
Map<String, String> procEnv = EnvironmentUtils.getProcEnvironment();
CommandLine cmdLine = CommandLine.parse(command);
DefaultExecutor executor = new DefaultExecutor();
executor.execute(cmdLine, procEnv, new DefaultExecuteResultHandler());
나는 내가 처음 POST 요청을 처리하고있어 동안, 나는이 같은 과정을 죽일 수 있다는 사실을 알고 :
executor.getWatchdog().destroyProcess();
을하지만, POST에 즉시 응답해야 사용자가 상태 페이지로 이동할 수 있습니다. 즉, 후속 요청에서 DefaultExecutor
인스턴스에 액세스 할 수 없습니다. 두 명 이상의 사용자가있을 수 있으므로 하나 이상의 응용 프로그램 인스턴스가 실행되고 있다고 가정해야 할 경우 사용자가 나중에 실행 취소를 요청할 수 있도록하려면 어떻게해야합니까? (응답에 여분의 데이터를 포함하고 필요할 경우 요청을 취소 할 수 있습니다.)