求问定时任务实现思路

2020-03-29 00:34:52 +08:00
 findlisa

有个需求是,给一个产品配置价格的生效时间 比如设置 3 月 29 日价格是 50 元,4 月 1 日是 100 元,4 月 10 号是 150 元 这三个生效时间都写进数据了 现在是 3 月 29 日,这个是生效的,状态为 1 ;到 4 月 1 日 0 点 00 分,100 元的价格生效状态置为 1,3 月 29 日的价格失效,状态自动修改为 0 。

这个定时任务怎么实现呢?是不是写 sql 存储过程就可以了?数据库是 mysql

3284 次点击
所在节点    程序员
17 条回复
xuanbg
2020-03-29 00:42:10 +08:00
这个需求要什么定时任务?直接用当前时间做条件查询出当前生效的价格不行吗?
mzsongyan
2020-03-29 00:42:59 +08:00
最简单的,根据当前时间判断,满足哪个条件展示哪个价格
findlisa
2020-03-29 00:49:04 +08:00
@xuanbg 要呀,价格会根据日期自动生效,感觉要个监听器什么的,因为价格我可以一次设置很多条,让它自己走
findlisa
2020-03-29 00:50:11 +08:00
@mzsongyan 每天凌晨检查一遍吗?那我有很多个产品呢
findlisa
2020-03-29 01:09:47 +08:00
现在打算这样做,设个 spring 定时任务,每天凌晨检查一遍所有价格,若有日期等于今天,修改该产品价格状态为 1,同时将上一个价格状态修改为 0 。。。
EminemW
2020-03-29 01:09:55 +08:00
@findlisa 接口返回的时候做生效时间判断不就好了?
sarices
2020-03-29 01:12:57 +08:00
这个跟定时任务没关系吧,根据服务器当前日期返回价格就好了啊
Mirana
2020-03-29 01:16:38 +08:00
把时间和数额 encode 成价格
liyunlong41
2020-03-29 01:44:34 +08:00
感觉调用查询价格接口时根据当前时间判断价格即可。
kaiki
2020-03-29 01:47:14 +08:00
也有可能是楼主的接口不能动,只能动数据,所以才需要一个外部的处理来根据时间修改价格?
123444a
2020-03-29 02:09:46 +08:00
电商没有一家使用定时任务改价格的,promotion 是独立信息
crab
2020-03-29 03:53:57 +08:00
查询调取价格的时候带入时间条件
coderEOS
2020-03-29 07:28:24 +08:00
gem whenever
zhou00
2020-03-29 10:20:22 +08:00
用线程池异步执行 Task 任务,执行完成再插入一条下次需要执行的任务,以此类推,上家电商平台,修改状态什么的就是这么做的,仅供参考
siweipancc
2020-03-29 10:27:56 +08:00
quartz.
nortonlai
2020-03-29 11:24:01 +08:00
@Mirana 这个思路好!
amao1021
2020-03-29 12:37:51 +08:00
在数据表里面先把每个日期要改变的价格写好,然后用定时任务去读取这个表,如果当前系统时间大于这个计划变更的时间了,就把价格改过来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/657194

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX