交互式调试(VSCode 中的 Docker + XDebug + RoadRunner)开始良好,但 10 - 20 秒后停止并出现错误:
worker_exec_with_timeout: ExecTTL: context deadline exceeded
猜测是RR配置问题。 当前 rr.yaml 是:
version: "3"
rpc:
listen: tcp://127.0.0.1:6001
server:
command: "php worker.php"
env:
- XDEBUG_SESSION: "1"
http:
address: "0.0.0.0:8100"
pool:
num_workers: 1
debug: true
supervisor:
idle_ttl: "0s"
exec_ttl: "0s"
RR 通过主管开始:
/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --server=roadrunner --host=0.0.0.0 --rpc-port=6001 --port=8100
如何克服
context deadline exceeded
错误?
你的配置不正确:不要在调试模式下使用supervisor,因为你有0个worker。您的
num_workers
配置选项将被忽略。调试模式下的工作线程根据请求进行分配。
有关调试模式的文档:https://docs.roadrunner.dev/docs/php-worker/developer#debug-mode
有关使用 XDEBUG 进行调试的文档位于:https://docs.roadrunner.dev/docs/php-worker/debugging