【问题标题】:How to fix 'PHP Fatal Error: Uncaught Pheanstalk\Exception\SocketException: Unknown error'如何修复“PHP 致命错误:未捕获的 Pheanstalk\Exception\SocketException:未知错误”
【发布时间】:2019-08-19 10:42:44
【问题描述】:

我正在尝试使用 pheanstalk 设置 BeanStalkD 客户端。

我可以执行某些操作,例如 listTubes()。

当我尝试从 beanstalkd 队列中保留作业时,我收到以下错误:

PHP 致命错误:未捕获的 Pheanstalk\Exception\SocketException:C:\SmartParking\vendo 中的未知错误 r\pda\pheanstalk\src\Socket\FileSocket.php:49 堆栈跟踪: #0 C:\SmartParking\vendor\pda\pheanstalk\src\Socket\FileSocket.php(91): Pheanstalk\Socket\FileSocket->t 异常() #1 C:\SmartParking\vendor\pda\pheanstalk\src\Connection.php(84): Pheanstalk\Socket\FileSocket->getLine( ) #2 C:\SmartParking\vendor\pda\pheanstalk\src\Pheanstalk.php(372): Pheanstalk\Connection->dispatchComman d(对象(Pheanstalk\Command\ReserveCommand)) #3 C:\SmartParking\vendor\pda\pheanstalk\src\Pheanstalk.php(255): Pheanstalk\Pheanstalk->dispatch(Objec t(Pheanstalk\Command\ReserveCommand)) #4 C:\SmartParking\SecondAttempt.php(22): Pheanstalk\Pheanstalk->reserve() #5 {主要} 在第 49 行的 C:\SmartParking\vendor\pda\pheanstalk\src\Socket\FileSocket.php 中抛出

我需要做什么来解决这个问题?

我试过了:

各种版本的PHP,各种版本的pheanstalk,重启一切,包括BeanStalkD服务器本身。

这一切都在品牌 Windows Server 2016 上运行,PHP 只是被用作命令行之外的脚本引擎。

我目前使用的是 PHP 7.2 版。

// Hopefully you're using Composer autoloading.
require('vendor/autoload.php');
use Pheanstalk\Pheanstalk;
// Create using autodetection of socket implementation
$pheanstalk = Pheanstalk::create('127.0.0.1');

var_dump($pheanstalk->listTubes());

while(true){
  $job = $pheanstalk
  ->watch('alpr-alt')
  ->reserve();

  echo json_decode($job->getData(), true);
}

【问题讨论】:

  • 一点帮助调查:在 pheanstalk/FileSocket.php 中,fgets($this->socket, 8192); 解析为 false,然后抛出“未知错误”
  • 谢谢,这真的帮助了我。我查看了这段代码,然后意识到我的 PHP.ini 中没有启用套接字扩展。我现在觉得自己像个真正的白痴。我在这个问题上浪费了 2 个小时 :)
  • 您可以为自己的问题写一个答案,并详细说明解决该问题的方法。可以帮助未来的访客。

标签: php beanstalkd pheanstalk


【解决方案1】:

我的PHP.ini 中没有启用套接字

所以我改变了:

;extension=sockets

extension=sockets

如果您使用 PHP 作为 Web 服务器的一部分,此时您必须重新启动它。

这解决了我的问题。

【讨论】:

    猜你喜欢
    • 2021-02-06
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2022-12-10
    相关资源
    最近更新 更多