get('KnowledgeTree/schedulerInterval',10); // interval in seconds //$phpPath = $config->get('externalBinary/php','php'); // TODO - fix me // Change to knowledgeTree/bin folder $dir = realpath(dirname(__FILE__) . '/..'); chdir($dir); // Setup php binary path $phpPath = realpath('../../php/php.exe'); if (!is_file($phpPath)) { $default->log->error("Scheduler: php not found: $phpPath"); exit; } $default->log->info("Scheduler Service: starting main loop"); $loop = true; // Main Scheduler Service Loop while ($loop) { switch (win32_get_last_control_message()) { case WIN32_SERVICE_CONTROL_CONTINUE: break; // Continue server routine case WIN32_SERVICE_CONTROL_INTERROGATE: win32_set_service_status(WIN32_NO_ERROR); break; // Respond with status case WIN32_SERVICE_CONTROL_STOP: win32_set_service_status(WIN32_SERVICE_STOPPED); $loop = false; // Terminate script continue; default: win32_set_service_status(WIN32_ERROR_CALL_NOT_IMPLEMENTED); // Add more cases to handle other service calls } // Run the scheduler script $cmd = "\"$phpPath\" scheduler.php"; $cmd = str_replace( '/','\\',$cmd); $res = `"$cmd" 2>&1`; if (!empty($res)) { $default->log->error('Scheduler: unexpected output - ' .$res); } sleep($schedulerInterval); } win32_set_service_status(WIN32_SERVICE_STOPPED); $default->log->error("Scheduler Service: exiting main loop"); ?>