南城以北追梦少年ゞ 2021-09-29 10:22 采纳率: 0%
浏览 22

C/C++语言怎么实现Etcd租约lease的续约?

在golang的Etcd库中,通过调用KeepAlive接口输入leaseId进行续约,GO操作如下:

lease := clientv3.NewLease(client)

lease.KeepAlive(ctx, leaseID)

 

在C/C++Etcd的库中只有leasegrant(timeout)接口进行创建租约,请问怎么进行续约呢?要实现的功能是,客户端下线Etcd对应数据自动删除。

  • 写回答

1条回答 默认 最新

  • 流比 2023-01-30 17:48
    关注

    C/C++可以通过调用Etcd的C API来实现lease的续约。需要先获得lease的ID,然后设置lease的ttl值并调用etcd_lease_keep_alive来实现lease的续约。

    以下是一个简单的例子:

    #include <etcd/c_api.h>
    
    // 设置lease ttl值
    int set_lease_ttl(etcd_client *client, int64_t leaseID, int ttl) {
    etcd_lease_keep_alive_response *res = etcd_lease_keep_alive(client, leaseID);
    if (!res) {
    // Handle error
    return -1;
    }
    etcd_lease_keep_alive_response_destroy(res);
    return 0;
    }
    
    // 续约lease
    int renew_lease(etcd_client *client, int64_t leaseID) {
    int ttl = 30;
    return set_lease_ttl(client, leaseID, ttl);
    }
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月29日

悬赏问题

  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决