目前想写一些定时任务挂在服务器上,主要大概有两类:
看了一些框架:
各位 v 友有什么建议吗?你们在项目中都是怎么做定时任务的?
1
jadec0der 2018-12-27 00:35:24 +08:00
crontab
|
2
mrchi OP @jadec0der 我想写一套东西,以后添加新定时任务的时候直接扔代码和运行配置就好了,再就是能够出错重试,然后对结果啥的能进行查看,crontab 的结果就只能往日志里写了吧
|
3
Kylin30 2018-12-27 00:45:36 +08:00
while true
|
4
xiexingjia 2018-12-27 01:06:19 +08:00 1
huey
|
5
JasonYo 2018-12-27 01:07:17 +08:00 via Android
就 celery 吧?
|
6
Rebely 2018-12-27 01:18:23 +08:00 via Android
我觉得如果需求不是特别麻烦另类选一个简单的就好了😁
|
7
user919lx 2018-12-27 01:23:31 +08:00 1
我是做数据开发的,需要处理大量的定时任务,还有重重复杂的依赖关系。
很推荐用 Airflow,已经有非常多的公司在使用这个调度系统了,就调度这件事而言,我觉得它提供的功能已经非常全面了,足够满足你的需求。 如果觉得官方文档比较难懂,可以参考我写的几篇博客,http://longfei.leanote.com/cate/bigdata 不过我这几篇都是概念和使用方法。如果你要想了解如何安装部署,要么看官方文档,要么就搜一下网络上的教程。 |
8
user919lx 2018-12-27 01:31:00 +08:00
按照你的需求, 部署 Airflow 配置个 LocalExecutor 就足够满足了。
1. 写一套东西,以后添加新定时任务的时候直接扔代码和运行配置 Airflow 的任务是用 Python 写的,你完全可以写成动态的形式,可以通过读取数据库或者 csv 文件来动态生成定时任务,事实上我在实践中经常这么用。 2. 能够出错重试,然后对结果啥的能进行查看 Airflow 提供 Web UI 界面,可以查看每个周期下的 task 的运行状态,还有完整的信息(执行时间、重试次数、运行日志等等),出错自动重试,可以发送邮件,并且有按钮能让你重试任务,连 ssh 登陆服务器都不需要。 |
9
smallgoogle 2018-12-27 04:42:28 +08:00
你这个直接就循环延时就行了。不需要用到啥定时器这些。
另外的定时任务。我写了一个。不知道合不合适你。我也是搞了好久。 |
10
fonlan 2018-12-27 07:48:11 +08:00 via Android
直接装个 jenkins 不就行了,So easy
|
11
zmj1316 2018-12-27 07:58:54 +08:00 via Android
Jenkins +1 log 也够用 配置也方便
|
12
aniua 2018-12-27 09:06:56 +08:00
一个简单的方法:写个 Infinite loop,检查 Localtime,匹配上就执行动作。
|
13
claymore94 2018-12-27 09:12:48 +08:00
threading.Timer, 做一个递归调用函数
|
14
sunnyadamm 2018-12-27 09:17:17 +08:00 via Android
Python 内循环,服务器 nohup
|
15
ooeyunarika 2018-12-27 09:22:46 +08:00
lz 举例的这些框架是分布式定时任务的,如果只是执行 lz 这些需求,没啥必要
内循环,python3 可以上 asyncio,或者直接用 crontab 就好了 |
16
rookiebulls 2018-12-27 09:28:02 +08:00 via iPhone
推荐 apscheduler,简单好用
|
17
Alfons 2018-12-27 09:30:17 +08:00
@claymore94 Good
|
18
sujin190 2018-12-27 09:44:41 +08:00
https://github.com/snower/forsun
推荐下之前写的工具,系统定时器秒级定时,长时间运行无误差,支持 thrift 接口和 http 接口添加定时任务,redis 持久化任务,轻松管理千万级别定时任务处理,支持到期执行 shell、http、mysql、redis 等操作,也可以自己编写扩展添加执行器 |
19
matrix1010 2018-12-27 09:46:45 +08:00 via Android
其实 AWS lambda 和阿里云的函数都支持 cron, 每个月有免费额度,还有统计,报警等各种功能
|
20
meiyoumingzi6 2018-12-27 09:49:06 +08:00 via Android
|
21
virusdefender 2018-12-27 09:49:12 +08:00
apscheduler 开发不活跃,但是绝对够用了,生产环境用了一段时间了
|
22
meiyoumingzi6 2018-12-27 09:50:06 +08:00 via Android
突然发现已经提到了🙃
|
23
babykiss4ever 2018-12-27 10:10:19 +08:00
|
24
SmiteChow 2018-12-27 10:31:31 +08:00
异步 /计划任务系统? Python ?只能是 Celery
|
25
chengxiao 2018-12-27 10:34:39 +08:00
https://www.v2ex.com/t/509485#reply24
之前看到有人实现的分布式 cron 管理 就收藏了 |
26
richzhu 2018-12-27 11:14:18 +08:00
就 Celery 好了,想太多不累的嘛~
|
27
sunwei0325 2018-12-27 11:23:59 +08:00
awesome python 进去搜一下有好多
|
28
ibegyourpardon 2018-12-27 11:44:35 +08:00
|
29
hunter2015 2018-12-27 12:06:41 +08:00
celery
|
30
HackerPainter 2018-12-27 13:28:11 +08:00
lugit
|
31
HackerPainter 2018-12-27 13:29:07 +08:00
@HackerPainter luigi
|
32
512357301 2022-01-11 22:33:32 +08:00 via Android
试试青龙面板,可以部署到本地的
|