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() も使用しようとしましたが、同じ動作になります。
それを解決する方法について何か提案はありますか?