我的插件中几乎没有临时选项,到期时间为45分钟。之后,他们点击一个API来获得响应。现在,在某些情况下,服务器会引发异常或限制用户,以防每秒的请求受到限制。现在,在这种情况下,我仍然希望呈现响应,目前我认为唯一的方法是以某种方式恢复过期的瞬态,以防来自服务器的节流异常。有没有想过恢复过期瞬态的方法或其他更好的方法?
是否可以恢复过期的暂态文件?
如果要对此进行编码,最好的方法可能不是对显示的值使用瞬态,而是使用一个已更新的常规自定义字段。
在这种情况下,会出现瞬态,这将超时并触发请求。您得到的结果由您的代码检查,然后存储在其他地方。
您可以使用该字段始终在前面显示它。每当临时请求完成时,您都会更新该字段。
根据站点设置,瞬态可能存储在内存缓存中,避免了DB查找的需要。因此,最好继续使用它们,但也将最后一个良好的API响应存储在其他地方,以便回退。
我会使用Wordpress Options API (get\\u选项和update\\u选项)执行此操作,只需在下面使用瞬态函数的地方添加相关代码。请注意Transients are also created by WP using Option functions.
设置transient时,还将执行update\\u选项(如果id不存在,也将创建该选项)。update_option(\'my_fallback_data\', $my_good_api_response);
当瞬态过期且API响应节流时,则:
$fallback_data = get_option(\'my_fallback_data\');
// NB. if option doesn\'t currently exist $fallback_data === false
update_option(\'my_fallback_data_expiry\', time() + 86400); // now + 1 day
然后根据上面2中的当前时间检查“my\\u fallback\\u data\\u expiry”