Skip to content

Commit 9a17344

Browse files
committed
allow definition of init task after adding workers
1 parent f89230a commit 9a17344

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

src/Taskmaster.php

+4
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,10 @@ public function setDefaultInitTask(TaskInterface|string $task): static
602602
$this->initTaskFactory = new CloneTaskFactory($task);
603603
}
604604

605+
foreach ($this->workers as $worker) {
606+
$worker->setInitTaskFactoryIfNecessary($this->initTaskFactory);
607+
}
608+
605609
return $this;
606610
}
607611

test/Integration/AsyncWorkerTestCase.php

+16
Original file line numberDiff line numberDiff line change
@@ -100,4 +100,20 @@ public function testInitTask(): void
100100
}
101101
$this->assertEquals(3, $counter);
102102
}
103+
104+
public function testInitTaskAfterWorkerCreation(): void
105+
{
106+
$this->taskmaster = new Taskmaster();
107+
$this->taskmaster->addWorkers($this->createWorker(), 3);
108+
$this->taskmaster->setDefaultInitTask(InitTask::class);
109+
110+
$this->addTasks(new InitValidateTask(), 3);
111+
$counter = 0;
112+
foreach ($this->taskmaster->waitAndHandleTasks() as $task) {
113+
$this->assertNull($task->getError());
114+
$this->assertTrue($task->getResult());
115+
$counter++;
116+
}
117+
$this->assertEquals(3, $counter);
118+
}
103119
}

0 commit comments

Comments
 (0)