• 请不要在回答技术问题时复制粘贴 AI 生成的内容
findlisa
V2EX  ›  程序员

求问定时任务实现思路

  •  
  •   findlisa · Mar 29, 2020 · 4490 views
    This topic created in 2416 days ago, the information mentioned may be changed or developed.

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

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

    17 replies  •  2020-03-29 12:37:51 +08:00
    xuanbg
    xuanbg
    Mar 29, 2020
    1
    这个需求要什么定时任务?直接用当前时间做条件查询出当前生效的价格不行吗?
    mzsongyan
    mzsongyan
    Mar 29, 2020 via iPhone
    2
    最简单的,根据当前时间判断,满足哪个条件展示哪个价格
    findlisa
    findlisa
    OP
    Mar 29, 2020 via Android
    3
    @xuanbg 要呀,价格会根据日期自动生效,感觉要个监听器什么的,因为价格我可以一次设置很多条,让它自己走
    findlisa
    findlisa
    OP
    Mar 29, 2020 via Android
    4
    @mzsongyan 每天凌晨检查一遍吗?那我有很多个产品呢
    findlisa
    findlisa
    OP
    Mar 29, 2020 via Android
    5
    现在打算这样做,设个 spring 定时任务,每天凌晨检查一遍所有价格,若有日期等于今天,修改该产品价格状态为 1,同时将上一个价格状态修改为 0 。。。
    EminemW
    EminemW
    Mar 29, 2020 via iPhone
    6
    @findlisa 接口返回的时候做生效时间判断不就好了?
    sarices
    sarices
    Mar 29, 2020
    7
    这个跟定时任务没关系吧,根据服务器当前日期返回价格就好了啊
    Mirana
    Mirana
    Mar 29, 2020
    8
    把时间和数额 encode 成价格
    liyunlong41
    liyunlong41
    Mar 29, 2020 via iPhone
    9
    感觉调用查询价格接口时根据当前时间判断价格即可。
    kaiki
    kaiki
    Mar 29, 2020
    10
    也有可能是楼主的接口不能动,只能动数据,所以才需要一个外部的处理来根据时间修改价格?
    123444a
    123444a
    Mar 29, 2020 via Android
    11
    电商没有一家使用定时任务改价格的,promotion 是独立信息
    crab
    crab
    Mar 29, 2020
    12
    查询调取价格的时候带入时间条件
    coderEOS
    coderEOS
    Mar 29, 2020 via Android
    13
    gem whenever
    zhou00
    zhou00
    Mar 29, 2020 via Android
    14
    用线程池异步执行 Task 任务,执行完成再插入一条下次需要执行的任务,以此类推,上家电商平台,修改状态什么的就是这么做的,仅供参考
    siweipancc
    siweipancc
    Mar 29, 2020 via iPhone
    15
    quartz.
    nortonlai
    nortonlai
    Mar 29, 2020 via Android
    16
    @Mirana 这个思路好!
    amao1021
    amao1021
    Mar 29, 2020
    17
    在数据表里面先把每个日期要改变的价格写好,然后用定时任务去读取这个表,如果当前系统时间大于这个计划变更的时间了,就把价格改过来
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4062 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 66ms · UTC 07:58 · PVG 15:58 · LAX 23:58 · JFK 02:58
    ♥ Do have faith in what you're doing.