Я уверен, что это какая-то неправильная конфигурация, но я не могу найти то, что он просматривает в документации gearmanbundle и gearman.
Я настроил Gearman и PHP-расширение gearman и запустил их вместе с GearmanBundle от Symfony2.
Я могу настроить задания и отправить их воркеру, но воркер не выполняет их автоматически, а ждет меня, пока я не выполню команду app/console gearman:worker:execute
.
По сути, все, что я хочу сделать, это записать несколько изображений в S3 в качестве фонового процесса, чтобы мое приложение не ждало завершения процесса, прежде чем продолжить.
Когда я запускаю эту команду, она работает нормально, вроде все в порядке.
Я запускаю свой демон gearman с неправильными аргументами или я где-то пропустил конфигурацию?
Или мне нужно сделать что-то вроде
foreach( $this->gearman->getWorkers() as $worker) {
$worker->doWork();
}
Или я должен добавить все это в качестве задач? Просто немного запутался, я думаю.
Огромное спасибо. Вот как выглядит код, вызывающий worker:
foreach($photos as $photo){
$payload = array(
'tempBase64Data' => $photo->getTempBase64Data(),
'path' => $photo->getPath(),
'mime' => $photo->getMime(),
);
$jobIds[] = $this->gearman->doBackgroundJob(
'imageWorker~writeFileToS3',
json_encode($payload)
);
}