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

2024-09-03 21:23:29 +08:00
 xiaocaiji111

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

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

当然了,如果你用 K8s 的话,直接部署一个 cronjob 就完了。
crackidz
2024-09-03 22:28:31 +08:00
xxl-job 你手撸一个也没多复杂啊...
crackidz
2024-09-03 22:29:18 +08:00
@crackidz 我的问题,没看到你说时间很紧了...
gowk
2024-09-03 23:15:10 +08:00
happy32199
2024-09-03 23:32:12 +08:00
gocron 怎么没人提 是什么功能实现不了吗?
Lychee0
2024-09-04 00:10:03 +08:00
asynq
transcendent
2024-09-04 00:19:43 +08:00
xiaocaiji111
2024-09-04 07:10:55 +08:00
@cabing 看到了,感谢,golang 版本的执行器,但是几年没更新了,一般不考虑。
xiaocaiji111
2024-09-04 07:14:08 +08:00
@jworg 我看下,目前想法也是通过 mq 去投放分片数据,消费端去执行,但是任务管理呀,配置,查看等等,这是上面要求的,用不用得到另说,你得有,难搞
xiaocaiji111
2024-09-04 07:16:29 +08:00
@happy32199 感谢,这只是个库,要实现的太多
xiaocaiji111
2024-09-04 07:16:42 +08:00
@Lychee0 thanks
xiaocaiji111
2024-09-04 07:16:57 +08:00
@gowk 我看看,thanks
xiaocaiji111
2024-09-04 07:18:58 +08:00
@cuebyte thanks ,目前是准备用 mq 实现
xiaocaiji111
2024-09-04 07:19:32 +08:00
xiaocaiji111
2024-09-04 07:20:16 +08:00
@crackidz 哈哈哈,是的,时间不是开发能左右的
xiaocaiji111
2024-09-04 07:21:17 +08:00
@transcendent thanks ,我研究下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1070027

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX