2016-05-17 2 views
0

私はcodeigniterのPhpAmqpLibライブラリでrabbitmqを使用していますが、うまく動作しますが、1台のマシンで複数のマシンで動作していますrabbitmqがインストールされていて、それにrabbitmqをインストールしたくありません。インストールされていないrabbitmqの致命的なエラーを回避するには

私は取得していますエラー:

致命的なエラー:メッセージでキャッチされない例外 'ErrorException'「stream_socket_client():できない がTCPに接続する:// localhostを:5672(接続なしにはなりませんでした"ターゲットマシンが積極的に を拒否したために作成されました。 )" F:¥xampp¥htdocs¥v010-commonsocialnetwork¥application¥third_party¥rabbitmq¥libraries¥vendor¥romainrg \ codeigniter-php-amqplib \ PhpAmqpLib \ Wire \ IO \ StreamIO.php:130 スタックトレース: #0 [内部関数]:PhpAmqpLib \ Wire \ IO \ StreamIO- >ばerror_handler(2 'stream_socket_c ...'、 'F:\ XAMPP \ htdocsに...'、130、アレイ) #1 F:\ XAMPP \ htdocsにv010-commonsocialnetwork \アプリケーション\ \ stream_socket_client( 'tcp:// localhost ...'、10061、 '接続がありません。c ...、3、4、リソースID#127) #2 F:¥xampp¥htdocs¥v010-commonsocialnetwork¥application¥third_party¥rabbitmq¥libraries¥vendor¥romainrg \ codeigniter-php-amqplib \ PhpAmqpLib \ Connection \ AbstractConnection.php(194):PhpAmqpLib \ Wire \ IO \ StreamIO- > #3 F:\ xampp \ htdocs \ v010-commonsocialnetwork \ a F:\ xampp \ htdocs \ v010-commonsocialnライン上の \ THIRD_PARTY \ RabbitMQの\ライブラリ\ベンダ\ romainrg \ CodeIgniterの-PHP-amqplib \ PhpAmqpLib \ワイヤー\ IO \ StreamIO.php

etworkの\アプリケーションは、これを回避するものはありますエラー?バックグラウンドジョブは、そのマシン上で追加して実行することはできませんが、少なくともこのエラーをスローしないでください。

おかげで、事前

答えて

0

する必要があります:)

try { 
       $CI->load->add_package_path(APPPATH . 'third_party/rabbitmq'); 
       $CI->load->library('rabbit_mq'); 
       $CI->load->remove_package_path(APPPATH . 'third_party/rabbitmq'); 
       $CI->rabbit_mq->push('background_job', json_encode(array('method'=>'check_activity_visibility','data'=>array('ActivityGUID'=>get_detail_by_id($entity_id),'ENVIRONMENT'=>ENVIRONMENT))), TRUE, array('delivery_mode' => 2)); 
      } catch(Exception $e) { 
       // Do nothing 
      } 
+0

これはこれを修正する方法であると確信していますか? – Gabriele

+0

確かにわかりませんが、今のところ私のために働きます。もっと良い選択肢があれば、間違いなく一緒に行くでしょう:) –

1

にあなたは他のマシン(複数可)でのRabbitMQをインストールする必要はありません。

しかし、あなたは、あなたが接続しようとしているIPを変更する必要があります。

tcp://localhost:5672 

はもう致命的なエラーを与えていないキャッチしてみてくださいと仕事

tcp://rabbitmq_ip_machine:5672 
+0

しかし、サーバーに展開すると、サーバー用にもう一度ipを変更する必要がありますか? –

+0

まあ、それはそれに依存します。ロード・バランサを使用することをお勧めします。またはあなたはいつも 'rabbitmq'サーバを使用することができますip – Gabriele

関連する問題