求助!各位使用 go 开发业务系统的小伙伴,分布式作业如何实现的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
xiaocaiji111
V2EX    程序员

求助!各位使用 go 开发业务系统的小伙伴,分布式作业如何实现的?

  •  
  •   xiaocaiji111 2024-09-03 21:23:29 +08:00 2472 次点击
    这是一个创建于 402 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前调研了市面上比较完备的作业框架,比如 xxl-job,elastic-job,power-job 等等都是 java 的。如果使用 github 上的 cron 库,实现想要的功能比较耗费精力,时间不允许,业务要按时上线。请问大家是怎么做的,有没有比较完备的类似 java 这些框架的方案?

    24 条回复    2024-09-04 13:49:49 +08:00
    mbeoliero123
        1
    mbeoliero123  
       2024-09-03 21:32:18 +08:00
    要快就 cron + 单机 + 配置(考虑动态配置),要全你得自己开发一套,其实也不复杂,加锁 + db 存储,但是没必要
    cabing
        2
    cabing  
       2024-09-03 21:37:27 +08:00   1
    xxl-job 也有 golang 版本的啊。只要部署下数据库,部署下项目就行。使用 golang 的 sdk 接入就行。小型项目的神器。
    cabing
        3
    cabing  
       2024-09-03 21:38:04 +08:00   1
    @cabing 这个是指 golang 的 sdk 。这种部署软件不用 java 开发啥的,只需要部署就行。简单功能也不用二次开发。
    jworg
        4
    jworg  
       2024-09-03 22:21:07 +08:00
    https://github.com/hibiken/asynq 这个可以不,作者是谷歌的,代码质量还行,依赖 redis
    cuebyte
        5
    cuebyte  
       2024-09-03 22:25:24 +08:00
    你可以用一个简单的 cronjob 发送 curl POST 请求,收到请求的 server 运行作业;
    也可以以同样的思路用 queue 来实现。

    当然了,如果你用 K8s 的话,直接部署一个 cronjob 就完了。
    crackidz
        6
    crackidz  
       2024-09-03 22:28:31 +08:00
    xxl-job 你手撸一个也没多复杂啊...
    crackidz
        7
    crackidz  
       2024-09-03 22:29:18 +08:00
    @crackidz 我的问题,没看到你说时间很紧了...
    gowk
        8
    gowk  
       2024-09-03 23:15:10 +08:00
    happy32199
        9
    happy32199  
       2024-09-03 23:32:12 +08:00 via Android
    gocron 怎么没人提 是什么功能实现不了吗?
    Lychee0
        10
    Lychee0  
       2024-09-04 00:10:03 +08:00   1
    asynq
    transcendent
        11
    transcendent  
       2024-09-04 00:19:43 +08:00
    xiaocaiji111
        12
    xiaocaiji111  
    OP
       2024-09-04 07:10:55 +08:00
    @cabing 看到了,感谢,golang 版本的执行器,但是几年没更新了,一般不考虑。
    xiaocaiji111
        13
    xiaocaiji111  
    OP
       2024-09-04 07:14:08 +08:00
    @jworg 我看下,目前想法也是通过 mq 去投放分片数据,消费端去执行,但是任务管理呀,配置,查看等等,这是上面要求的,用不用得到另说,你得有,难搞
    xiaocaiji111
        14
    xiaocaiji111  
    OP
       2024-09-04 07:16:29 +08:00
    @happy32199 感谢,这只是个库,要实现的太多
    xiaocaiji111
        15
    xiaocaiji111  
    OP
       2024-09-04 07:16:42 +08:00
    @Lychee0 thanks
    xiaocaiji111
        16
    xiaocaiji111  
    OP
       2024-09-04 07:16:57 +08:00
    @gowk 我看看,thanks
    xiaocaiji111
        17
    xiaocaiji111  
    OP
       2024-09-04 07:18:58 +08:00
    @cuebyte thanks ,目前是准备用 mq 实现
    xiaocaiji111
        18
    xiaocaiji111  
    OP
       2024-09-04 07:19:32 +08:00
    xiaocaiji111
        19
    xiaocaiji111  
    OP
       2024-09-04 07:20:16 +08:00
    @crackidz 哈哈哈,是的,时间不是开发能左右的
    xiaocaiji111
        20
    xiaocaiji111  
    OP
       2024-09-04 07:21:17 +08:00
    @transcendent thanks ,我研究下
    masterclock
        21
    masterclock  
       2024-09-04 08:56:22 +08:00
    temporal
    xiaocaiji111
        22
    xiaocaiji111  
    OP
       2024-09-04 11:10:45 +08:00
    @masterclock 看起来可以,我研究下
    wogogoing
        23
    wogogoing  
    PRO
       2024-09-04 12:21:21 +08:00   1
    我自己实现的一个简单的计划任务库,也用在了我司的生产环境。up 可以瞅瞅: https://github.com/keepchen/schedule
    tpopen
        24
    tpopen  
       2024-09-04 13:49:49 +08:00
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2834 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:17 PVG 22:17 LAX 07:17 JFK 10:17
    Do have faith in what you're doing.
    ubao 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