【发布时间】:2021-07-16 01:11:59
【问题描述】:
我对 golang 比较陌生,可以使用一些关于如何构建它的高级技巧。我正在尝试构建一个 REST API:
- 用户将通过 POST 方法提供一个小的 JSON 负载
- API 将用户的输入数据与存储为结构切片的参考数据集进行比较并计算一个值
- 这个值返回给用户
- 每小时查询一个数据库,并用另一个结构数据集切片替换结构数据集切片。基本上这会刷新参考数据
- 我希望这项令人耳目一新的工作是异步的,这样它就不会降低用户体验
我正在使用 golang 的 Echo 框架 (https://echo.labstack.com/)。这是我在类似 golang 的伪代码中的尝试。 您将如何构建此 API 以每小时异步刷新数据?
为了澄清,我坚持的部分是“在后台每小时异步查询数据库”位。我不确定在那种情况下如何做到这一点。
func main() {
e := echo.New()
e.POST("/", func(something) {
// This func queries the DB and saves reference dataset result as a slice of structs
dataset := refreshDB()
// Does some calculations on input JSON data and reference dataset
result := doCalcs(inputJSON, dataset)
// Prep response in neat JSON
responseForUser := prepOutput(result)
return responseForUser
})
}
【问题讨论】:
标签: rest go asynchronous