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