首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每分钟与set_transient同步数据

每分钟与set_transient同步数据
EN

WordPress Development用户
提问于 2018-02-23 12:44:13
回答 1查看 834关注 0票数 0

我将插件的一些数据与外部API同步。这个同步进程应该每分钟启动一次。因此,我使用以下代码来完成该操作:

代码语言:javascript
复制
if ( ! get_transient( 'my_task_sync_method' ) ) {
    set_transient( 'my_task_sync_method', true, 1 * MINUTE_IN_SECONDS );
    my_task_sync_method();
}

目前,我在插件初始代码中运行此代码。我知道这是一种解决办法,而不是暂时的正常用例,但这是迄今为止我找到的最好的解决方案。

这很好,但有时当我重新加载后端页面(例如仪表板)时,我会得到一些我已经生成的定制post管理页面的部分。当我在运行同步进程时重新加载页面时,似乎就会发生这种情况。这件事很难调整。但是马比有人知道这样的问题并能帮助我吗?如果有更好的解决方案来进行同步,如果您告诉我更好的方法,我会很高兴的。

EN

回答 1

WordPress Development用户

发布于 2018-02-23 16:00:01

您的同步函数可能会尝试做得太多,特别是当您需要联系外部资源时。

正确的方法是当信息超过一分钟时获取信息,而不是每时每刻。这样,如果同步失败,您肯定不会陷入困境。

我个人讨厌瞬变,因为他们的设计,不可靠。您应该使用一个选项,在该选项中存储下一次更新,并检查该时间是否已过,可能会在该选项中存储一个额外的“标志”,该“标志”指示何时更新正在进行,以防止双重更新。

额外注意:虽然1分钟的间隔大部分时间应该是可以的,但我的直觉是它太短了。Web服务器和web软件的设计并不能非常准确地说明它们的时间安排,而且您的站点不能拥有超过一分钟的陈旧信息的情况听起来很荒谬。假设您在每次同步上做一些额外的DB写操作,您将对您的服务器功能进行征税,以获取一些可能实际上不需要的内容。

票数 0
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/294946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档