将 PHP-FPM 限制为一次执行

问题描述

我想限制 PHP-FPM 在给定时间只执行一次, 这意味着任何进一步的请求都将排队。

我正在使用 Nginx,但我认为这是 PHP-FPM 配置的问题。

我读到了 PHP-FPM listen.backlogprocess.max, 我发现 process.max 是我需要调整的,但我不确定..

实现这一目标的正确方法是什么?

解决方法

你说得对。只需设置这些参数:

pm = static
pm.max_children = 1

但也许您需要一个锁定机制?在这种情况下,您可以尝试使用其中的一些:

https://www.php.net/manual/en/function.sem-acquire.php

https://symfony.com/doc/current/lock.html