time = intval($time); } public function getCommand() { return 'sleep ' . $this->time . ' && echo ' . $this->time; } public function done($stdout, $stderr) { echo 'done '; echo str_replace(array("\r\n", "\n", "\r"), ' ', var_export(array( 'command' => $this->getCommand(), 'stdout' => $stdout, 'stderr' => $stderr, ), true)), PHP_EOL; } public function fail($stdout, $stderr, $status) { echo 'fail '; echo str_replace(array("\r\n", "\n", "\r"), ' ', var_export(array( 'command' => $this->getCommand(), 'stdout' => $stdout, 'stderr' => $stderr, 'status' => $status, ), true)), PHP_EOL; } } $manager = new WorkerManager(); for ($i = -1; $i < 10; $i++) { $manager->attach(new SleepThenEcho($i)); } while (0 < count($manager)) { $manager->listen(); }