
需要实现多任务的工作流程,支持定时任务、延时任务,能上生产环境,不是玩具。
谢谢各位。
1 shimada666 Jul 15, 2024 xxljob 。延时任务原生没有,但是你可能可以参考这篇 https://blog.csdn.net/renkeyutian/article/details/131702203 |
2 Lycnir Jul 15, 2024 |
3 masterclock Jul 15, 2024 temporal |
4 nulIptr Jul 15, 2024 简单点也可以普通脚本配合 K8S 的 cornjob 。。。 |
5 saxonblue17 Jul 15, 2024 同问题,Go 有吗? |
6 SbloodyS Jul 15, 2024 python 直接上 airflow |
7 changdig Jul 15, 2024 celery |
8 paopjian Jul 15, 2024 面试考了 celery,那企业应该是用过了 |
9 amon OP @shimada666 之前在 Java 中用过,刚去 xxl-job 官方 GitHub 仓库貌似对 Python 支持有限啊。 @Lycnir 谢谢推荐,这个能简单介绍一下吗,门外汉了解起来感觉都差不多。 @masterclock 这个看起来挺不错的,不知道会不会太重了。 @nulIptr 小项目,不用 K8s 的方案有没有。 @SbloodyS 谢谢推荐。 |
10 whoosy Jul 15, 2024 python 也就 celery 和 apscheduler 能用 |
12 elron Jul 15, 2024 celery 和 apscheduler 都能满足,而且 apscheduler 支持动态添加周期任务,celery 更偏向生产-消费模型 |
13 yangfan1999 Jul 15, 2024 apscheduler +1 |
14 BBCCBB Jul 15, 2024 支持延迟消息的 MQ, redis zset 也可以实现.. |
15 knva Jul 15, 2024 一看到这种就想用青龙 ,怎么回事 |
16 rationa1cuzz Jul 15, 2024 celery 和 apscheduler celery 相对稳定,建议搭配 rabbitmq 使用,apscheduler 适合简单场景,要额外处理多进程并发问题,实际使用起来或多或少都有一些问题 |
17 Masterlxj Jul 15, 2024 mq ,方便好用 |
18 swim2sun Jul 15, 2024 生产级别+python 能想到的只有 airflow ,但性价比不高,需要部署 N 个服务 不过你既要生产级别的稳定高可用,又要性价比高,感觉比较难,看你自己怎么权衡 |
19 fds Jul 15, 2024 工作流的话其实还有一个 https://github.com/spotify/luigi 。我们生产环境在用。不过需要外部定期触发。 |
20 masterclock Jul 15, 2024 @amon 一个 go 的主程序一个数据库,应该也不算重 |
21 Davic1 Jul 15, 2024 |
22 Davic1 Jul 15, 2024 |
23 itskingname Jul 15, 2024 @SbloodyS airflow 太蠢了,我的代码只有 2 行,但是为了写这个 dag ,需要搞十多行代码。 |
24 raycool Jul 15, 2024 apscheduler +1 稳的很 |
25 KIDJourney Jul 15, 2024 性价比最高的方案就 while True 了 |
26 orioleq Jul 15, 2024 via iPhone airflow+1 |
27 fred649 Jul 15, 2024 via Android 如果是 Django 的话可以试试过时的 Django Q ,蛮好用的 |
28 enrolls Jul 15, 2024 所以,多少人天,写个 python 版或者 go 版本的也不困难 :) |
29 yinmin Jul 15, 2024 大项目用 mq ,小项目用 asyncio.create_task 跑一个 task: while True: try: await asyncio.sleep(1) # Check every 1 second ... ... except asyncio.CancelledError: log("Cleanup task cancelled") break except Exception as e: log(f"Error in cleanup task: {e}", "ERROR") |
30 R4rvZ6agNVWr56V0 Jul 15, 2024 dramatiq 了解一下 |
31 lanlanye Jul 15, 2024 via iPhone 微:asyncio 中小:Celery 大:Temporal |
32 Martens Jul 15, 2024 蹲一个 go 的 |
33 ETCartman Jul 15, 2024 |
34 slowgen Jul 15, 2024 其实性价比最高的定时器,应该是各个云厂商的 serverless ,配个触发器,然后选个 curl 镜像,里面扔个 curl 命令请求你的系统,请求头搞个 token 做鉴权就够了。 优先赛博菩萨 cloudflare https://developers.cloudflare.com/workers/examples/multiple-cron-triggers/ 其次国内云 https://help.aliyun.com/zh/functioncompute/user-guide/time-triggers https://cloud.tencent.com/document/product/583/9708 人家云服务的后台有账户管理、日志记录、失败可以重试、有告警,以前的那种额度够你免费用一年,现在一年也就十几二十块,比你自己搭建部署整天修漏洞打补丁还要搞多节点做高可用靠谱多了。 你还要做性价比高的延时任务?计算好触发时间,动态创建/修改/删除函数,把触发器时间设定为触发时间就行了,反正小系统也没多少条任务吧。 |
35 Lattez Jul 15, 2024 部署 dolphinscheduler |
36 shijingshijing Jul 15, 2024 @SbloodyS 推荐 airflow 是认真的吗?这玩意儿一上来风扇直接起飞,不差钱服务器资源管够做做 ETL 还不错,生产环境做业务实时处理不被老板骂死也被用户投诉死吧。 |
37 bronyakaka Jul 15, 2024 Django-Q ,我已经用上了,好用不好用 谁用谁知道 |
38 chunhai Jul 15, 2024 crontab |
39 jgarrick Jul 15, 2024 apscheduler 多线程处理经常有问题. 既然都推荐 Celery, 我来推荐使用 Huey |
40 DinoStray Jul 15, 2024 sleep 有哪些缺陷呢? |
41 ClericPy Jul 15, 2024 azkaban/airflow, 只要有多任务依赖关系或者定时任务的,一定要上靠谱的,不然真脚本地狱 有条件的 Serverless + 自带调度器(比如 steps 或触发器或 gateway api )也挺好,很多运维的事比开发都麻烦 (虽然在写玩具准备接管一个类似 supervisor 的场景) |
42 HashV2 Jul 16, 2024 我只用过 celery ,参数很多,文档要仔细看,不然在生产环境偶尔还是要出问题的。 另外如果你是用 django 的话,django5.0 在开发 django-tasks, 目前还是在开发阶段,稍微再等等应该就可以用了 |
43 6167 Jul 16, 2024 celery+redis+rabbitmq ,定时和异步任务都用这个 |
45 flmn Jul 16, 2024 python 不是该先试试 Celery 么 |
46 shimada666 Jul 16, 2024 @amon 还行吧,目前我们服务 xxl-job 配合 pyxxl 这个 python 接入库在跑,额外配了个钉钉告警,挺稳的调试也方便 |
47 shimada666 Jul 16, 2024 技术选型的时候,其他的 airflow 什么都调研了一遍,最后还是选择 xxl-job ,部署简单,资源占用少,该有的功能(秒级定时、cron 表达式可视化编辑、日志查看、支持任务依赖、任务超时等配置)都有,上手/运维难度极低,如果你想省心,推荐这个 |
48 galileo1214 &nbs;Jul 16, 2024 没有一个人用 crontab 吗 |
49 clemente Jul 16, 2024 jenkins job |
50 pollux Jul 16, 2024 我推荐使用 https://faststream.airt.ai/latest/ faststream + NATS |
52 julyclyde Jul 16, 2024 @galileo1214 正常人不会用 crontab 的 因为你不能保证 crond 一直在运行 |
53 drymonfidelia Jul 17, 2024 via iPhone @shuimugan cf 这个有漏任务的概率(确定不是网络问题) |
54 Latin Jul 19, 2024 |
55 walker001 Jul 21, 2024 @drymonfidelia 有具体的案例看看么 |
56 byronwind Jul 26, 2024 airflow / celery |
57 gmyxds Sep 11, 2024 我觉得基于 redis 的 zset 很好用, |