Использую php-amqplib/rabbitmq-bundle Все работает нормально до момента пока Rabbit не обваливается. Вопрос: как можно избежать этих ошибок
[ErrorException]
fwrite(): send of 8 bytes failed with errno=32 Broken pipe
Exception trace: () at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:285 PhpAmqpLib\Wire\IO\StreamIO->error_handler() at n/a:n/a PhpAmqpLib\Wire\IO\StreamIO->write() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:374 PhpAmqpLib\Wire\IO\StreamIO->write_heartbeat() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:359 PhpAmqpLib\Wire\IO\StreamIO->check_heartbeat() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:410 PhpAmqpLib\Wire\IO\StreamIO->select() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:231 PhpAmqpLib\Wire\IO\StreamIO->read() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/AMQPReader.php:149 PhpAmqpLib\Wire\AMQPReader->rawread() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/AMQPReader.php:106 PhpAmqpLib\Wire\AMQPReader->read() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php:513 PhpAmqpLib\Connection\AbstractConnection->wait_frame() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php:560 PhpAmqpLib\Connection\AbstractConnection->wait_channel() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php:217 PhpAmqpLib\Channel\AbstractChannel->next_frame() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php:327 PhpAmqpLib\Channel\AbstractChannel->wait() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/rabbitmq-bundle/RabbitMq/Consumer.php:88 OldSound\RabbitMqBundle\RabbitMq\Consumer->consume() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/rabbitmq-bundle/Command/BaseConsumerCommand.php:90 OldSound\RabbitMqBundle\Command\BaseConsumerCommand->execute() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:240 Symfony\Component\Console\Command\Command->run() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:876 Symfony\Component\Console\Application->doRunCommand() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:215 Symfony\Component\Console\Application->doRun() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:71 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:122 Symfony\Component\Console\Application->run() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/bin/console:27
[PhpAmqpLib\Exception\AMQPRuntimeException] Invalid frame type 65
Exception trace: () at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php:519 PhpAmqpLib\Connection\AbstractConnection->wait_frame() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php:560 PhpAmqpLib\Connection\AbstractConnection->wait_channel() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php:217 PhpAmqpLib\Channel\AbstractChannel->next_frame() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php:327 PhpAmqpLib\Channel\AbstractChannel->wait() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/rabbitmq-bundle/RabbitMq/Consumer.php:88 OldSound\RabbitMqBundle\RabbitMq\Consumer->consume() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/rabbitmq-bundle/Command/BaseConsumerCommand.php:90 OldSound\RabbitMqBundle\Command\BaseConsumerCommand->execute() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:240 Symfony\Component\Console\Command\Command->run() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:876 Symfony\Component\Console\Application->doRunCommand() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:215 Symfony\Component\Console\Application->doRun() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:71 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:122 Symfony\Component\Console\Application->run() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/bin/console:27
[PhpAmqpLib\Exception\AMQPRuntimeException] Broken pipe or closed connection
Exception trace: () at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/IO/StreamIO.php:211 PhpAmqpLib\Wire\IO\StreamIO->read() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/AMQPReader.php:149 PhpAmqpLib\Wire\AMQPReader->rawread() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Wire/AMQPReader.php:106 PhpAmqpLib\Wire\AMQPReader->read() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php:513 PhpAmqpLib\Connection\AbstractConnection->wait_frame() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Connection/AbstractConnection.php:560 PhpAmqpLib\Connection\AbstractConnection->wait_channel() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php:217 PhpAmqpLib\Channel\AbstractChannel->next_frame() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/php-amqplib/PhpAmqpLib/Channel/AbstractChannel.php:327 PhpAmqpLib\Channel\AbstractChannel->wait() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/rabbitmq-bundle/RabbitMq/Consumer.php:88 OldSound\RabbitMqBundle\RabbitMq\Consumer->consume() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/php-amqplib/rabbitmq-bundle/Command/BaseConsumerCommand.php:90 OldSound\RabbitMqBundle\Command\BaseConsumerCommand->execute() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Command/Command.php:240 Symfony\Component\Console\Command\Command->run() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:876 Symfony\Component\Console\Application->doRunCommand() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:215 Symfony\Component\Console\Application->doRun() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:71 Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:122 Symfony\Component\Console\Application->run() at /home/hoster/sms.adm.tools/deploy-20180601112736-d7871684132ddb1dd6bd76693341e62dd9407e93/bin/console:27
Или в консьюмере проверять что ребит лежит и ждать пока он не перезапустится. Код консьюмера
class MessageConsumer implements ConsumerInterface
{
/**
* @var Sender
*/
protected $sender;
/**
* @return Sender
*/
public function getSender()
{
return $this->sender;
}
/**
* @param Sender $sender
* @return $this
*/
public function setSender(Sender $sender)
{
$this->sender = $sender;
return $this;
}
/**
* @param AMQPMessage $msg
* @return void
* @throws \InvalidArgumentException
* @throws \Doctrine\ORM\ORMInvalidArgumentException
* @throws \Doctrine\ORM\OptimisticLockException
*/
public function execute(AMQPMessage $msg)
{
$messageId = $msg->getBody();
$this->getSender()->process($messageId);
}
}
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Возникла проблема, нужно сделать проверку на заглавные буквы в URL и переадресовывать на URL со строчными буквамиРеализация простая:
Возможно ли указать для $to: значение, которое пользователь ввел в инпуте Email? Чтобы письмо пришло на почту, которую пользователь указал в форме
Имеем PHP скрипт для VK APIСкрипт создает запись в открытых группах ВК (метод wall