请教大佬们,微服务中定时任务的代码应该如何设计 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
yisheyuanzhang
V2EX    Java

请教大佬们,微服务中定时任务的代码应该如何设计

  •  
  •   yisheyuanzhang Sep 16, 2021 3439 views
    This topic created in 1683 days ago, the information mentioned may be changed or developed.

    单体项目时,只分了两个项目

    1. web 端,响应前端用户的请求
    2. 定时调度执行器,配合 xxl-job 使用

    拆分为微服务后,定时任务执行的相关代码如何设计比较好? 我自己能想到的

    1. 用户请求的业务代码和定时任务代码写到一个服务,通过部署时配置文件和 Nacos 命名空间来控制部分服务响应用户请求,部分服务注册到 xxljob
    2. 业务代码和定时任务代码分别写两个服务,由于两个服务肯定有公共代码,还得抽一个公共业务模块
    8 replies    2021-09-18 00:05:16 +08:00
    lumious
        1
    lumious  
       Sep 17, 2021
    参与的一个项目做法是单独分一个负责定时器的服务,注册到 xxl-job 。由定时服务通过 feign 或者 dubbo 去调用业务服务
    namelosw
        2
    namelosw  
       Sep 17, 2021
    业务和任务经常有业务相同的地方,所以放在一起比较好。
    xuanbg
        3
    xuanbg  
       Sep 17, 2021
    别忘了加分布式锁
    xuanbg
        4
    xuanbg  
       Sep 17, 2021
    我的做法是实现一个任务调度器,调度器只管到点调用对应服务接口。
    freemoon
        5
    freemoon  
       Sep 17, 2021
    有一个定时器服务,只运行一个实例。业务代码该在哪在哪,不要耦合。通过 rpc 就行
    yisheyuanzhang
        6
    yisheyuanzhang  
    OP
       Sep 17, 2021
    这样的话,同一个服务可能会被 web 访问和定时任务同时调用。 如果定时任务执行流程比较长的话。 服务更新时很容易中断。。
    fengpan567
        7
    fengpan567  
       Sep 17, 2021
    每个服务一个定时任务子工程,然后注册到 xxl-job 去调度
    FrankAdler
        8
    FrankAdler  
       Sep 18, 2021
    job 独立,抽公共模块少不了的,项目再大点业务再复杂点会更明显,需要共享或者公用的常量设置太多了
    About     Help     Advertise     Blog     API     FAQ     Solana     4367 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 40ms UTC 10:15 PVG 18:15 LAX 03:15 JFK 06:15
    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