WordPress `get_transient()` 返回过时的值

问题描述 投票:0回答:1

我正在构建一个 WordPress 插件,该插件在数据更改时使用服务器发送的事件来更新页面。

这是该代码的片段:

    while ( true ) {
        // Send the updates to the client.
        $this->send_sse_event( 'updates_push', get_transient( 'name_of_the_transient' );

        sleep( 5 );

        if ( connection_aborted() ) {
            break;
        }
    }

问题是从该脚本发送的事件保存了陈旧的数据...这意味着当对某个 PHP 脚本的另一个请求更改瞬态值时,服务器发送的事件仍然发送旧值,直到我刷新页面。

关于如何解决这个问题有什么想法吗?

php ajax wordpress server-sent-events
1个回答
0
投票

问题似乎是托管提供商的默认对象缓存。调用

wp_cache_flush()
后,瞬态返回正确的数据。因此,解决方案是在使用瞬态值之前从缓存中排除瞬态/重新验证该瞬态的缓存。

© www.soinside.com 2019 - 2024. All rights reserved.