我对 Symfony 2 很陌生,对 Gearman 也很陌生。我正在寻找将 Symfony 2 与 Gearman 集成的捆绑包。
根据包装师的说法, mmoreramerino 的捆绑包似乎是最受欢迎的捆绑包。不幸的是,有些东西似乎坏了,自动加载器没有找到捆绑包。
Fatal error: Class 'Mmoreramerino\GearmanBundle\MmoreramerinoGearmanBundle' not found in ...
当我从这个分支中修复的问题中得到解决时,我尝试切换到“开发开发”,但它对我也不起作用。
问题:如何使用 Symfony 2.1.x 安装这个包?问题 2:是否有任何可行且记录在案的替代方案?
编辑以防其他人遇到这个问题:这是我启动和运行的方法!
- 安装 gearman、libgearman、PHP 的 PECL 扩展(使用最新版本!)
- 检查 gearman 是否出现在 phpinfo() 中(cli 和 webserver 版本)
- 使用“gearmand --verbose INFO”在终端 1 中启动 gearmand(您将看到工作人员和客户端连接到 gearman - 或不连接;-))
- 从 gearman php 扩展示例目录中的终端 2 reverse_worker.php 开始
- 从 gearman php 扩展示例目录中的终端 3 reverse_client.php 开始
- 如果这有效,您就可以使用 Symfony:使用“dev-development”安装 mmoreramerino/GearmanBundle
- 将包中的 dev.base.yml 复制到 app/config/gearman/dev.yml
- 现在将 TestWorker.php 添加到您的包中,如文档中所述
- 使用控制台脚本“php app/console gearman:job:execute MmoreramerinoGearmanBundleWorkerstestWorker~test”启用 testWorker
现在您可以将作业发送到 Symfony 控制器(或 Symfony 中的其他地方)中的监听 testWorker。尽管我使用的是默认主机/端口,但我必须指定服务器。
$gearman = $this->get('gearman');
$gearman->setServer('127.0.0.1',4730);
$gearman->doNormalJob('MmoreramerinoGearmanBundleWorkerstestWorker~test');