Я новичок в Symfony 2 и совершенно не знаком с Gearman. Я ищу пакет для интеграции Symfony 2 с Gearman.
набор mmoreramerino кажется самым популярным пакетом, по мнению упаковщиков. К сожалению что-то похоже сломалось, автозагрузчик не находит комплект.
Fatal error: Class 'Mmoreramerino\GearmanBundle\MmoreramerinoGearmanBundle' not found in ...
Я пробовал переключиться на "dev-development" как я понял из проблем, которые были исправлены в этой ветке, но у меня это тоже не сработало.
Вопрос: Как я могу установить этот пакет, используя Symfony 2.1.x? Вопрос 2: Существуют ли какие-либо работающие и документированные альтернативы?
Изменить Если кто-то еще столкнется с этим вопросом: вот как я его запустил!
- Установите gearman, libgearman, расширение PECL для PHP (используйте последние версии!)
- проверьте, что gearman отображается в phpinfo() (как версия cli, так и версия веб-сервера)
- запустите gearmand в терминале 1, используя "gearmand --verbose INFO" (вы увидите, что рабочие и клиенты подключаются к gearman - или нет ;-))
- запустите в терминале 2 reverse_worker.php из каталога примеров расширения gearman php
- запустите в терминале 3 reverse_client.php из каталога примеров расширения gearman php
- Если это работает, вы готовы к Symfony: установите mmoreramerino/GearmanBundle с помощью «dev-development»
- скопируйте dev.base.yml из пакета в app/config/gearman/dev.yml
- Теперь добавьте TestWorker.php в свой пакет, как описано в документации.
- включите testWorker с помощью консольного скрипта "php app/console gearman:job:execute MmoreramerinoGearmanBundleWorkerstestWorker~test"
теперь вы можете отправлять задания слушающему testWorker в контроллере Symfony (или где-то еще в Symfony). Мне пришлось указать сервер, хотя я использую хост/порт по умолчанию.
$gearman = $this->get('gearman');
$gearman->setServer('127.0.0.1',4730);
$gearman->doNormalJob('MmoreramerinoGearmanBundleWorkerstestWorker~test');