我基本上使用Consul和健康检查服务来存储来自某些远程主机的健康检查错误消息(key:hostname => value:message)。但是,如果键值对在超过24小时内未更新,我希望将其删除,例如,如果远程主机完全从健康检查轮换中删除。
根据Consul API documentation,您可以在session
创建时设置TTL。然后,当您Create/Update a key时,您可以使用session
参数将此acquire
绑定到特定键,并且当会话到期时,它也会删除该键。需要注意的是acquire
也会锁定密钥,这对我来说意味着其他人无法设置该值,直到稍后使用release
参数进行更新,但这会删除会话 - >密钥关联(最终删除密钥上的TTL。)
目前尚不清楚如何在Consul键值存储中为键实现简单的TTL。看起来像这样的东西可以工作,但我不确定如何保持与密钥关联的会话:
TTL=86400s
创建会话并获取sessionID
acquire=sessionID
release=sessionID
??? 对每个插入的新键值对重复上述步骤。
有人可以详细说明如何使用会话从Consul中删除过期的键值对吗?
答案 0 :(得分:0)
在创建会话时,您可以将行为指定为<?php
add_action( 'wp_enqueue_scripts', 'thene_styles', PHP_INT_MAX);
function theme_styles() {
wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style') );
}
?>
类型,并将TTL设置为24小时(选中https://www.consul.io/api/session.html#ttl)。因此,如果未在指定的期限内恢复会话,则密钥将自动删除(https://www.consul.io/docs/internals/sessions.html)。