1
shiny 2018-09-08 20:28:03 +08:00
需要你交待下技术选型背景,什么语言什么框架。比如 node 下的 egg.js 自带定时器,稳如老狗。
|
2
jybox 2018-09-08 20:32:24 +08:00 1
无需维护的还是机器自带的 crontab 比较稳,写个 curl 命令访问你的 HTTP API 就可以了。
如果需要消除单点的话,可以同时在多个机器上配置 crontab,然后在你的程序( HTTP API )里访问 Redis 或其他数据库,加一个 30 分钟的锁避免重复触发。 |
3
limuyan44 2018-09-08 20:51:01 +08:00 via Android
既然是交付的,又不要维护,丢 db 里面开个定时任务慢慢扫吧,这种任务也不用精确
|
4
FRankie222 2018-09-08 21:17:07 +08:00 via iPhone
我做过一个需求,不知道和你说的是否相似,在数据库中按照主键存一个时间点,到了这个时间点给主键对应的信息发送消息,当时是用的定时任务每隔 2 分钟去跑一次,把里面的时间点和当前的比较,如果时间差在两分钟内,就发出去。数据量不大,每次也就一万多条
|
5
brickyang 2018-09-08 21:25:24 +08:00 via iPhone
可以用 Redis 的过期键。客户预约时就新建一个到「提醒时间」过期的键,过期时 Redis 会有消息,通知系统订阅该消息即可。
稳不稳主要看 Redis,用阿里云之类的服务基本可以放心。 |
6
GGGG430 2018-09-08 21:27:14 +08:00 via iPhone
延时消息队列
|
7
kwklover OP |
10
anonymous256 2018-09-08 22:05:58 +08:00 via Android
|
11
daimazha 2018-09-08 22:32:17 +08:00
quartz
|
12
kwklover OP 楼上的方案用来发送短信提醒可以,不过还有一个需求是定时下发微信客服消息,微信会校验域名,似乎不行哦
|
13
xiexingjia 2018-09-08 22:49:56 +08:00
|
14
letitbesqzr 2018-09-09 22:15:42 +08:00
@brickyang #5 是说的 keyspace notification 这个特性吧。 被这东西坑的,少记录了一堆重要数据,数据量大的话,建议还是不要用了。。
|
15
brickyang 2018-09-09 23:26:56 +08:00 via iPhone
@letitbesqzr #14 什么是「少记录了一堆东西」?
|