求助,多个定时任务更优解 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
hhhWhy
V2EX    程序员

求助,多个定时任务更优解

  •  
  •   hhhWhy 2021-07-29 11:20:30 +08:00 2572 次点击
    这是一个创建于 1591 天前的主题,其中的信息可能已经有所发展或是发生改变。

    场景:

    1. 有多个定时 /周期的任务需要执行(比如:周一三五执行,每天 8 点执行)。
    2. 用户 A 定的任务,权限更高的用户 B 可以修改,当然修改以后原任务执行周期自然就变了。
    3. CS 软件,任务数据都在数据库,执行必须由客户端执行。

    现有设计:

    1. 将计时器和数据打包,任务更改后去重新创建计时器
    2. 将计时器单独拎出来,到点主动拉数据库数据。任务更改后,计时器只增不删。

    感觉实现都不是很优雅,大家有没有遇到过这种问题,有没有更优雅的模型

    第 1 条附言    2021-07-29 17:20:34 +08:00
    场景补充:

    客户机不会多于 5 台,一般就两个用户,定时把数据推给用户,用户 A 和 B 只需要一个人看。
    不同时间对应不同数据,都是从数据库去取,实际开销也比较小。
    8 条回复    2021-07-29 17:12:29 +08:00
    meshell
        1
    meshell  
       2021-07-29 11:33:09 +08:00
    为什么必须客户端执行?服务端跑定时,推送消息给客端该跑任务了?
    zardly666
        2
    zardly666  
       2021-07-29 11:36:21 +08:00
    xxl-job 看看呢 服务端有立即执行的 api 供外部(客户端)调用。
    chionetw5
        3
    chionetw5  
       2021-07-29 12:20:26 +08:00
    celery 有动态修改的接口
    akiakiseofficial
        4
    akiakiseofficial  
       2021-07-29 12:26:05 +08:00 via iPhone
    服务端保存定时任务和执行计划,到执行时间后发执行指令给客户端
    hhhWhy
        5
    hhhWhy  
    OP
       2021-07-29 13:33:52 +08:00
    @meshell @xlui 因为依托于 CS 平台,原来老的 S 端只有一个数据库和多个客户端的数据交互。如果要去加功能的话,祖传代码,所以为了少生产 BUG 还是想放到客户端上面去做
    hhhWhy
        6
    hhhWhy  
    OP
       2021-07-29 13:39:20 +08:00
    @zardly666 @chionetw5
    看了下,如果服务端可以改的话,是很不错的。但是限定在客户端执行 ort
    petercui
        7
    petercui  
       2021-07-29 16:03:40 +08:00
    @hhhWhy 客户端要是不开机怎么执行呢?
    hhhWhy
        8
    hhhWhy  
    OP
       2021-07-29 17:12:29 +08:00
    @petercui 不开机就不执行,直接顺延到下个周期
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2752 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 03:21 PVG 11:21 LAX 19:21 JFK 22:21
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86