【问题标题】:How to store data to redis at specific Time interval in Go如何在Go中以特定时间间隔将数据存储到redis
【发布时间】:2022-01-11 16:10:52
【问题描述】:

我正在尝试在(上午 6 点、下午 12 点、下午 6 点和上午 12 点)将数据设置为 Redis。但我能做的就是为redis中的数据缓存设置一个过期时间。 Golang 中有没有办法做到这一点?

代码:

err := client.Set(key, data[]byte, 6 * time.Hour).Err()

【问题讨论】:

  • 看起来您正试图从早上 6 点开始每 6 小时设置一次数据。为什么不为此使用cron.jobs

标签: go redis beego data-caching


【解决方案1】:

因为您想每 6 小时在 redis 中添加数据。您应该为此使用 cronjob。

我创建了一个示例场景,可能会对您有所帮助:

为了更好地理解你可以参考gocron包。

s := gocron.NewScheduler(time.UTC)
    
    s.Every(6).Hours().Do(func(){  //you can change it
    
      err := client.Set(ctx, "key", "value", 0).Err()  //your logic
        if err != nil {
            panic(err)
        }
    
     })

【讨论】:

  • 如何在每天早上 6 点启动调度程序并在每 6 小时后运行一次,以便在早上 6 点、中午 12 点、下午 6 点和中午 12 点获取数据?
  • 你可以把它传入Scheduler 参考:github.com/go-co-op/gocron/blob/…
猜你喜欢
  • 2017-08-20
  • 1970-01-01
  • 2021-06-29
  • 1970-01-01
  • 2018-02-02
  • 1970-01-01
  • 1970-01-01
  • 2016-08-31
  • 2017-01-27
相关资源
最近更新 更多