我正在编写一个简单的通知服务 i Go。该服务提供了一个 REST api,可以在其中放置通知,例如
{
delayUntil: '2016-02-05T18:00:00'
user: 'username',
msg: 'Hello World',
isSent: false
}
现在我想在 delayUntil 时间向用户发送通知,要求服务即使重新启动也应该工作,这意味着我必须保留通知。现在我正在使用 BoltDB(键/值存储)。
解决此问题的一种方法是持续读取数据库并在经过 delayUntil 时发送通知。
另一种方法是在服务启动时读取数据库,并将每个通知放在一个 goroutine 中,该协程在 delayUntil 时间触发。消息发送后,它在 DB 中被标记为已发送。进入 API 的新条目被插入到数据库中并进行调度。
有没有首选/更好/更简单的方法来实现这一目标?
编辑:只需要一个实例。
月关宝盒
相关分类