2016-05-13 14 views
0

2つのSymfony2アプリケーションを別々のサーバで実行しています。 2つ目のアプリでイベントを1つのアプリに通知するメカニズムが必要です。私は何とかしている私には知られているアプローチと満足していない:外部symfony2アプリにイベントを通知する方法

  1. 署名要求

    私はイベントの私の第二のアプリからのセキュアコントローラのアクションを呼び出すことができます。しかし、このソリューションの欠点は、他のアプリがダウンしているとイベントが失われることです。私は、ダウンタイムの後にいつでもアプリがイベントを処理できるようにしたい。

  2. ワーカーキューAmazonのSQSキューを使用して

    は私の要件のために正常に動作します。しかし、労働者は記憶を奪うことが知られている。

私はこれを可能な限り実現したいと考えています。私はサービスのやり取りのパターンにはあまり知られていません。誰かが私を助けてくれますか?が良いものですhttp://queues.io/

のRabbitMQ -

答えて

0

は、Amazon SQSへの代替がたくさんあります。あなたのメッセージが小さく、あなたが私的なネットワークを持っているなら、Beanstalkdを使うことができます - とても速く簡単です。

symfonyのためのバンドルは、あなたが探しているものを

+0

あなたの答えをありがとう。サービスインタラクションのための他の相互作用メカニズムはありますか? – Gargee

0

を使用することができますがありますがmessage busです。あなたはenqueueライブラリで簡単にお互いの話をすることができます。私はメッセージバスを介してSymfony < - > Magentoの統合に関するblog postを書きました。

アプリケーションFooとBarがあるとします。エンキューとトランスポート(そのsuppports message bus)をインストールする必要があります。 RabbitMQはそれをサポートしていますので、AMQPトランスポートを選択しています。

インストール:

composer require enqueue/enqueue-bundle enqueue/amqp-ext 

構成:

# app/config/config.php 

enqueue: 
    transport: 
    default: 'amqp://' 
    client: 
    app_name: 'foo' # for the foo app 
    app_name: 'bar' # for the bar app 

は、今あなたが話題にそれらをsend event messagesregister processors加入することができます。トピックにメッセージを送信すると(どのアプリに関係なく)、興味のあるすべてのアプリに配信されます。

関連する問題