2011-09-12 7 views
5

node.jsのジョブキューマネージャを探していますが、これはphpで呼び出すことができます。これは、電子メールを送信したり、pdfファイルを作成したり、PHPプロセスの非同期処理を実行したりしたいWebアプリケーション用です。プロセスのnode.jsのジョブキュー

例:

  1. ユーザーが要求したPHPページ
  2. PHPはジョブ・キュー・マネージャーを起動し、
  3. タスクが非同期的にPHPのNode.jsの中で実行されたタスクを追加し、それはだ、好ましくときもう少し静か
  4. タスクPHPスクリプト

なぜこの「複雑な」システムを実行するのですか?私たちは、PHPのすべての当社のWebアプリケーションを作成

  1. (Zend Frameworkの)
  2. 我々は非同期プロセス必要
  3. Node.jsの学習を開始したいと思います(高速応答を!)
  4. :本当の」タスクは、データベース接続への容易なアクセスを持つように、すでに書かれたPHPクラスを利用し、できるだけ多くDRYこのシステムの可能

ユースケースのように、同様にPHPスクリプトでなければなりません

  1. ユーザーは、システムが、システムは請求書に最後に

を送信するユーザーは、eコマースの順序を完了

  • ウェルカムメールが送信されます、自分自身を登録し、我々は実行するために、同様のノード-cronを使用したいのですが非システムワイドなcronタスク(非常にアプリケーション固有)。 Node-cronは、ジョブキューマネージャーを起動し、その後、PHPスクリプトを実行します。

    ノードに既にこのようなアプリケーションがありますか?

  • 答えて

    0

    可能なオプションの1つは、Redisを使用するnode-jobsです。

    +0

    Redisはシステム全体でインストールされています。ノード・ジョブ(アプリケーション・ベースごとに実行できることを望みます)をアプリケーションごとにどのように使用できるのでしょうか?または、すべてのジョブの前にアプリケーション名(おそらく逆TLD)を付けることで、これを簡単にする必要がありますか? –

    +1

    プレフィックスはおそらく動作します:逆方向TLDはきちんとしたトリックです。 – Femi

    2

    このような場合、私はRabbitMQのようなメッセージキューと、node-amqpphp-amqpのようなクライアントサイドライブラリを好むでしょう。それから、キュー内のPHPスクリプトからあなたの仕事を送信し、nodejsがキューからジョブを受け取れるようにします。大きな利点は、拡張性があり、エンタープライズ市場で広く使用されテストされていることです。

    +1

    なぜこのようなツールをこのセットアップに使用しますか?それはうまくいくかもしれないようですが、この目標のために過剰に設計されています。徹底したテストとエンタープライズ市場向けの準備は、もちろん利点ですが、使いやすさとシンプルさの使いやすさも同様です。 –

    +0

    RabbitMQは、言語に依存しない(今日は、次の日にはpython、ruby、java?原因の単純さは常にいいですが、私は自分の技術をプロジェクトの活動によっても選びます。 – malte

    関連する問題