0

我正在使用 Laravel,并创建了一个 route:call 命令,其方式与以下问题中接受的答案相同:Call laravel controller via command line

现在我有一个如下控制器:

class FooController
{
    public function apcuClear(Request $request) : void
    {
        apcu_clear_cache();
        echo "cleared";
    }
}

通过适当的路由设置,我可以通过 route:call 命令调用,php artisan route:call --uri=/foo/apcuClear并正确显示输出“已清除”。

但是问题是 apcu 缓存没有清除属性,并且对 Laravel 的每个请求最终仍然显示缓存值。

当通过实际的 HTTP 请求而不是通过命令行调用该函数时,确认该函数apcu_clear_cache()本身可以正常工作。

我的猜测是,由于用户“apache”在发出请求时正在运行 Laravel,这与在命令行上运行 route:call 命令的用户不同,apcu_clear_cache因此没有清除正确的缓存。

我的猜测正确吗?如果是这样,如何使用命令行正确清除实际应用程序中的 apcu?

4

0 回答 0