后台有一个订单,这个订单有一个过期时间,我需要在过期时间 来更新一下订单状态
自己用 celery 的周期任务 每分钟轮询来实现 但这样轮询感觉不是很友好。
有没有这种能设置固定时间的任务?
自己用 celery 的周期任务 每分钟轮询来实现 但这样轮询感觉不是很友好。
有没有这种能设置固定时间的任务?
|
zdnuistJul 30, 2018
1
Quartz
|
|
b821025551bJul 30, 2018
2
这种用 Redis 来实现很方便。
|
|
qf0129Jul 30, 2018 via iPhone
3
Celery 有 async_task 可以指定时间或者延迟执行
|
|
RekklesJul 30, 2018
5
crontab
|
|
tomczhenJul 30, 2018 via Android
7
业余允许的话,在建立订单的时候设定好 expire at 时间,同时返回 expire in n sec 给前端,发生查询或业务时判断 expire at 时间来做是否过期判断。
|
|
misaka19000Jul 30, 2018
9
为啥不友好?我觉得就挺好的 单独写个项目来处理这些定时任务不就行了
|
|
justseemoreJul 30, 2018
10
写 daemon 啊,时间肯定比一分钟短。。
|
|
victrecJul 30, 2018
11
|
|
thinkwei2012Jul 30, 2018
12
同意 Redis
|
|
hahasongJul 30, 2018
13
写个 go 服务长驻进程,周期性检查处理
|
|
14
|
|
lsheroJul 30, 2018
16
延时队列
|
|
17
|
|
lihongjie0209Jul 30, 2018
18
DelayQueue 可以做, 但是一旦你考虑到任务持久化的问题, 轮询数据库最简单
|
|
sampengJul 30, 2018
19
了解一下 time wheel。。。。。其实就定时某一个时间点自然是每隔多久检查一下当前时间是什么时候。。
|
|
21
http://docs.celeryproject.org/en/latest/userguide/calling.html#eta-and-countdown
>The ETA (estimated time of arrival) lets you set a specific date and time that is the earliest time at which your task will be executed. countdown is a shortcut to set ETA by seconds into the future. |
|
22
1. celery 自带按照指定时间执行的任务功能,不过使用 redis 有坑(可以自己先踩踩)。
2. 用 go 实现一个定时。 3. 现成的定时框架。 |
|
23
用缓存+时间片
然后轮询时间片 |
|
qf0129Jul 31, 2018
26
eta 是个啥 这就不清楚了
|
|
fangdingjunAug 1, 2018
27
我会用最懒的办法,数据库记录过期时间,显示订单时再更新状态
|