我正在尝试通过 PHP 脚本连接到 beanstalkd 服务器并从现有队列中保留作业。我正在使用 fgets() 函数从守护进程获取响应,希望脚本挂起,除非有工作可用,这是一个示例代码:
set_time_limit(0);
$connection = fsockopen('localhost', 11300);
fwrite($connection, "reserve\r\n");
stream_set_blocking($connection, TRUE);
fgets($connection);
如您所见,我试图强制 fgets() 函数阻塞,并且我将 max_execution_time 设置为 0(意味着没有限制),但过了一会儿(2 分钟)脚本返回没有错误。我试图通过 telnet 运行 reserve 命令,但它按预期挂起。我也尝试使用 fread() 但我得到了相同的行为。
关于如何解决它的任何建议?