私は Symfony 2 を初めて使用し、Gearman を初めて使用します。Symfony 2 と Gearman を統合するためのバンドルを探しています。
packagistによると、mmoreramerino のバンドルが最も人気があるようです。残念ながら、何かが壊れているようです。オートローダーはバンドルを見つけられません。
Fatal error: Class 'Mmoreramerino\GearmanBundle\MmoreramerinoGearmanBundle' not found in ...
このブランチで修正されたという問題から得たので、「dev-development」に切り替えてみましたが、うまくいきませんでした。
質問: Symfony 2.1.x を使用してこのバンドルをインストールするにはどうすればよいですか? 質問 2: 有効で文書化された代替手段はありますか?
編集他の誰かがこの質問に出くわした場合: これが私がそれを起動して実行する方法です!
- PHP の PECL 拡張である gearman、libgearman をインストールします (最近のバージョンを使用してください)。
- Gearman が phpinfo() に表示されることを確認します (cli と webserver の両方のバージョン)。
- 「gearmand --verbose INFO」を使用してターミナル 1 で Gearmand を開始します (ワーカーとクライアントが Gearman に接続するかどうかが表示されます ;-))
- ターミナル 2 で、gearman php 拡張サンプル ディレクトリから reverse_worker.php を開始します。
- ターミナル 3 で、gearman php 拡張サンプル ディレクトリから 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');