Synchronous implementation
The InMemory
adapter doesn't use any work queue. All the tasks are executed immediately and
synchronously in the same process.
This implementation is useful if you don't want to install a work queue on your development machine, or in tests too.
It implements the same interface as the other adapters, so you can use it the same way:
$workDispatcher = new InMemoryWorkDispatcher(new InMemoryWorker());
// Run a task
$task = new MyTask();
$workDispatcher->run($task);
There is (obviously) no need for a worker, since the worker is already running in the same process.
This is basically the same as executing the task directly.
Waiting for a task to finish
The InMemory
adapter also implements the SynchronousWorkDispatcher
interface, which
allows to run tasks and fetch its result:
$result = $workDispatcher->runAndWait(new MyTask());