首页 文章

如何避免未安装rabbitmq的致命错误

提问于
浏览
0

我正在使用带有PhpAmqpLib库的rabbitmq进行codeigniter,它工作正常,但是我正在一台机器上安装了多台机器,而且安装了另一台机器,而另一台机器则没有 . 由于某些原因,我不想在它上面安装rabbitmq .

我收到错误:

致命错误:带有消息'stream_socket_client()的未捕获异常'ErrorException':无法连接到tcp:// localhost:5672(因为目标计算机主动拒绝它而无法 Build 连接 . )'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,Array)#1 F:\ xampp \ htdocs \ v010-commonsocialnetwork \ application \ third_party \ rabbitmq \ libraries \ vendor \ romainrg \ codeigniter-php-amqplib \ PhpAmqpLib \ Wire \ IO \ StreamIO.php(130):stream_socket_client('tcp:// localhost ...',10061,'No connection 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-> connect()#3 F:\ xampp \ htdocs \ v010-commonsocialnetwork \ a在F:\ xampp \ htdocs \ v010-commonsocialnetwork \ application \ third_party \ rabbitmq \ libraries \ vendor \ romainrg \ codeigniter-php-amqplib \ PhpAmqpLib \ Wire \ IO \ StreamIO . php在130行

有什么可以避免这个错误?后台作业可能无法在该计算机上添加和执行,但至少不会抛出此错误 .

提前致谢

2 回答

  • 0

    您无需在其他计算机中安装RabbitMQ .

    但是你必须改变你想要连接的IP:

    tcp://localhost:5672
    

    应该

    tcp://rabbitmq_ip_machine:5672
    
  • 1

    使用try grab 它不再给出致命的错误:)

    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
                }
    

相关问题