如何避免未安装rabbitmq


How to avoid fatal error of rabbitmq not installed

我使用rabbitmq-PhpAmqpLib库作为代码点火器,它运行良好,但我在多台机器上工作,其中一台机器安装了rabbitmq,另一台机器没有安装,出于某些原因,我不想在上面安装rabbitmq。

我收到错误:

致命错误:未捕获异常"ErrorException",消息为"stream_socket_client():无法连接到tcp://localhost:5672(由于目标计算机处于活动状态,因此无法建立连接拒绝了。)'in F:''examplep''htdocs''v010 commonsocialnetwork''application''third_party''rabbitmq''libraries''vendor''romainrg''代码点火器php amqplib''PhpAmqpLib''Wire''IO''StreamIO.php:130堆栈跟踪:#0[内部函数]:PhpAmqpLib''Wire''IO''StreamIO->error_handler(2,'stream_socket_c…','F:''examplep''htdocs…',130,阵列)#1 F:''examplep''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,'无连接c…',3,4,资源id#127)#2 F:''examplep''htdocs''v010 commonsocialnetwork''application''third_party''rabbitmq''libraries''vendor''romainrg''代码点火器php amqplib''PhpAmqpLib''Connection''AbstractConnection.php(194):PhpAmqpLib''Wire''IO''StreamIO->connect()#F:''xamplep''htdocs''v010 commonsocialnetwork''application中的3 F:''xamp''htdocs''v010 commonsocialnetwork''a''第三方''rabbitmq''librars''vendor''romainreg''codeigniter php amqplib''PhpAmqpLib''Wire''IO''StreamIO.php在线130

有什么可以避免这个错误吗?后台作业可能不会在该机器上添加和执行,但至少不会引发此错误。

提前感谢

您不需要在其他机器中安装RabbitMQ。

但你必须更改你试图连接的IP:

tcp://localhost:5672 

应该是

tcp://rabbitmq_ip_machine:5672

使用try-catch不会再出现致命错误:)

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
            }