项目简介
Multi Job是一个基于文件级别、轻量级、多进程、大规模、高效率实现Python程序脚本运行的任务分发并行框架。主要用于解决在多台服务器上进行大规模爬虫和数据分析时,服务器配置不一、不在同一云平台的问题。
项目的主要特性和功能
- 部署简单:支持多机器高并发,可在多台机器上快速部署并运行任务,回传结果。
- 自动化程序分发和版本控制:支持任务的版本比较和更新。
- 任务全生命周期监控:包括任务的执行、失败、成功和回传状态。
- 任务效率统计分析:自动计算任务的运行时间、成功率等指标。
- 可视化前端:提供任务情况、机器情况等统计分析的展示和交互。
- Client可控:可在前端直接控制Client的运行参数、启停等信息。
- SDK支持:可加载SDK进行任务的更新、提交和查询等控制。
安装使用步骤
环境准备
安装Python环境,并安装必要的依赖库。
bash
cd server; pip install -r requirements.txt
cd client; pip install -r requirements.txt
cd SDK; pip install -r requirements.txt
部署Server
运行server/run.py
,启动Server服务。
bash
cd server; python run.py
部署Client
运行client/controller.py
,启动Client控制器。
bash
cd client; python controller.py
添加任务类型
通过前端或SDK注册任务类型,并添加任务。
- 网页前端方法:访问http://127.0.0.1:5006/home
,点击左上角“增加任务类型”。
- SDK方法:
python
from MultiJob import MultiJob
client = MultiJob(base_url="http://127.0.0.1:5006")
client.update_job_file_status(job_type="new_job")
执行任务
通过前端或SDK提交任务,并监控任务状态。
python
job_id = client.insert_job(job_type="new_job", x=1, y=2, label="multi_job")
result = client.get_job_detail(job_id)
print(result)
结果查看
查看任务结果和统计信息。
- 网页前端:访问http://127.0.0.1:5006/home
查看任务状态和统计信息。
- SDK方法:
python
result = client.get_job_summary(job_type="test_job", batch=-1)
print(result)
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】