1

我正在尝试使用 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 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->dispatchCommand(对象(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 ->在第 49 行的 C:\SmartParking\vendor\pda\pheanstalk\src\Socket\FileSocket.php 中抛出的 reserve() #5 {main}

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

我试过了:

各种版本的 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);
}
4

1 回答 1

0

我没有在我的PHP.ini

所以我改变了:

;extension=sockets

extension=sockets

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

这解决了我的问题。

于 2019-03-28T16:17:32.180 回答