mirror of
https://github.com/chai2010/advanced-go-programming-book.git
synced 2025-05-31 01:57:26 +00:00
13 lines
869 B
Markdown
13 lines
869 B
Markdown
# 6.10. 延时任务系统
|
|
|
|
我们在做系统时,很多时候是处理实时的任务,请求来了马上就处理,然后立刻给用户以反馈。但有时也会遇到非实时的任务,比如确定的时间点发布重要公告。或者需要在用户做了一件事情的 X 分钟/Y 小时后,对其特殊动作,比如通知、发券等等。
|
|
|
|
如果业务规模比较小,有时我们也可以通过 db + 轮询来对这种任务进行简单处理,但上了规模的公司,自然会寻找更为普适的解决方案来解决这一类问题。
|
|
|
|
一般有两种思路来解决这个问题:
|
|
|
|
1. 实现一套类似 crontab 的分布式定时任务管理系统
|
|
2. 实现一个支持定时发送消息的消息队列。
|
|
|
|
两种思路进而衍生出了一些不同的系统,但其本质是差不多的。本质上都是需要实现一个定时器。
|