我有以下配置的安装程序。
'derayah' => [
'driver' => 'rabbitmq',
'queue' => env('RABBITMQ_QUEUE', 'default'),
'connection' => PhpAmqpLib\Connection\AMQPStreamConnection::class,
'hosts' => [
[
'host' => env('RABBITMQ_HOST', '127.0.0.1'),
'port' => env('RABBITMQ_PORT', 5672),
'user' => env('RABBITMQ_USER', 'guest'),
'password' => env('RABBITMQ_PASSWORD', 'guest'),
'vhost' => env('RABBITMQ_VHOST', '/'),
],
],
'worker' => env('RABBITMQ_WORKER', 'default'),
'options' => [
'ssl_options' => [
'cafile' => env('RABBITMQ_SSL_CAFILE'),
'local_cert' => env('RABBITMQ_SSL_LOCALCERT'),
'local_key' => env('RABBITMQ_SSL_LOCALKEY'),
'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
'passphrase' => env('RABBITMQ_SSL_PASSPHRASE'),
],
'queue' => [
'job' => App\Listeners\Derayah::class,
],
],
],
字符串
我正在使用Laravel Forge创建Deamon,下面是命令
queue:work' derayah --sleep=10 --daemon --quiet --delay=10 --tries=5 --queue='B_Transaction,S_Transaction,M_Transaction'
型
这是一个股票市场的饲料,它提供的消息,如果一个特定的人做了一些交易的经纪人,我们保存它在我们的系统,它通常工作正常,但有时会失败以下错误
PhpAmqpLib\Exception\AMQPRuntimeException /artisan in ?
Lost connection: Broken pipe or closed connection
型
然后这就成了记录
PhpAmqpLib\Exception\AMQPIOException /artisan in ?
stream_socket_client(): Unable to connect to tcp://213.184.187.103:5672 (Connection refused)
型
**我的解决方案:**我需要从forge重新启动QUEUE manullay,以便在失败后再次连接
**我的发现:**这是一个无确认设置,我需要找到一种方法来重新启动队列/连接,因为我的队列似乎卡住了
1条答案
按热度按时间fjaof16o1#
由于某种原因,代理(RabbitMQ服务器)关闭了连接。或者可能是它重新启动,而worker中的连接不再有效。
避免这类问题的通常解决方案是在supervisord(http://supervisord.org/)或类似机制下运行进程,以便在发生错误时自动重新启动它们。