如何修复'PHP致命错误:未捕获的Pheanstalk \ Exception \ SocketException:未知错误'

问题描述 投票:0回答:1

我正在尝试使用pheanstalk建立BeanStalkD客户端。

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

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

PHP致命错误:未捕获Pheanstalk \ Exception \ SocketException:C:\ SmartParking \ vendo r \ pda \ pheanstalk \ src \ Socket \ FileSocket.php中的未知错误:堆栈跟踪:#0 C:\ SmartParking \ vendor \ pda \ pheanstalk \ src \ Socket \ FileSocket.php(91):Pheanstalk \ Socket \ FileSocket-> t hrowException()#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 - >保留()#5 {main}在第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);
}
php beanstalkd pheanstalk
1个回答
0
投票

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

所以我改变了:

;extension=sockets

extension=sockets

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

这解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.