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

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

  •  
  •   hhhWhy · Jul 29, 2021 · 2889 views
    This topic created in 1789 days ago, the information mentioned may be changed or developed.

    场景:

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

    现有设计:

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

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

    Supplement 1  ·  Jul 29, 2021
    场景补充:

    客户机不会多于 5 台,一般就两个用户,定时把数据推给用户,用户 A 和 B 只需要一个人看。
    不同时间对应不同数据,都是从数据库去取,实际开销也比较小。
    8 replies    2021-07-29 17:12:29 +08:00
    meshell
        1
    meshell  
       Jul 29, 2021
    为什么必须客户端执行?服务端跑定时,推送消息给客端该跑任务了?
    zardly666
        2
    zardly666  
       Jul 29, 2021
    xxl-job 看看呢 服务端有立即执行的 api 供外部(客户端)调用。
    chionetw5
        3
    chionetw5  
       Jul 29, 2021
    celery 有动态修改的接口
    akiakiseofficial
        4
    akiakiseofficial  
       Jul 29, 2021 via iPhone
    服务端保存定时任务和执行计划,到执行时间后发执行指令给客户端
    hhhWhy
        5
    hhhWhy  
    OP
       Jul 29, 2021
    @meshell @xlui 因为依托于 CS 平台,原来老的 S 端只有一个数据库和多个客户端的数据交互。如果要去加功能的话,祖传代码,所以为了少生产 BUG 还是想放到客户端上面去做
    hhhWhy
        6
    hhhWhy  
    OP
       Jul 29, 2021
    @zardly666 @chionetw5
    看了下,如果服务端可以改的话,是很不错的。但是限定在客户端执行 ort
    petercui
        7
    petercui  
       Jul 29, 2021
    @hhhWhy 客户端要是不开机怎么执行呢?
    hhhWhy
        8
    hhhWhy  
    OP
       Jul 29, 2021
    @petercui 不开机就不执行,直接顺延到下个周期
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5558 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 72ms · UTC 03:47 · PVG 11:47 · LAX 20:47 · JFK 23:47
    ♥ Do have faith in what you're doing.