0

私は Symfony 2 を初めて使用し、Gearman を初めて使用します。Symfony 2 と Gearman を統合するためのバンドルを探しています。

packagistによると、mmoreramerino のバンドルが最も人気があるようです。残念ながら、何かが壊れているようです。オートローダーはバンドルを見つけられません。

Fatal error: Class 'Mmoreramerino\GearmanBundle\MmoreramerinoGearmanBundle' not found in ...

このブランチで修正されたという問題から得たので、「dev-development」に切り替えてみましたが、うまくいきませんでした。

質問: Symfony 2.1.x を使用してこのバンドルをインストールするにはどうすればよいですか? 質問 2: 有効で文書化された代替手段はありますか?

編集他の誰かがこの質問に出くわした場合: これが私がそれを起動して実行する方法です!

  1. PHP の PECL 拡張である gearman、libgearman をインストールします (最近のバージョンを使用してください)。
  2. Gearman が phpinfo() に表示されることを確認します (cli と webserver の両方のバージョン)。
  3. 「gearmand --verbose INFO」を使用してターミナル 1 で Gearmand を開始します (ワーカーとクライアントが Gearman に接続するかどうかが表示されます ;-))
  4. ターミナル 2 で、gearman php 拡張サンプル ディレクトリから reverse_worker.php を開始します。
  5. ターミナル 3 で、gearman php 拡張サンプル ディレクトリから reverse_client.php を開始します。
  6. これが機能する場合は、Symfony の準備ができています。「dev-development」を使用して mmoreramerino/GearmanBundle をインストールします。
  7. バンドルから dev.base.yml を app/config/gearman/dev.yml にコピーします。
  8. ドキュメントで説明されているように、TestWorker.php をバンドルに追加します。
  9. コンソール スクリプト「php app/console gearman:job:execute MmoreramerinoGearmanBundleWorkerstestWorker~test」を使用して、testWorker を有効にします。
  10. これで、Symfony コントローラー (または Symfony の別の場所) でリッスンしている testWorker にジョブを送信できるようになりました。デフォルトのホスト/ポートを使用していますが、サーバーを指定する必要がありました。

    $gearman = $this->get('gearman');
    $gearman->setServer('127.0.0.1',4730);
    $gearman->doNormalJob('MmoreramerinoGearmanBundleWorkerstestWorker~test');

4

1 に答える 1

1

バンドルをインストールするには、次の行をcomposer.json

"Mmoreramerino/GearmanBundle": "dev-development"

composer update を実行します。

次に、それを登録しapp/AppKernel.phpます(すでにこれを行っているようです)

new Mmoreramerino\GearmanBundle\MmoreramerinoGearmanBundle(),
于 2013-02-08T10:55:55.363 に答える