title = $title; } public function __invoke() { cli_set_process_title('php ' . $this->title); print("start:{$this->title}\n"); sleep(3); print("stop :{$this->title}\n"); } } $limit = ConcurrencyLimit::singleWorker(); $context = ContextBuilder::create()->withLimit($limit)->build(); for ($i = 0; $i < 3; $i++) { $title = md5(mt_rand()); $context->submit(new Job($title)); } $context->on('no_workers_remaining', fn() => $context->stop()); $context->run();