一个基于multiprocessing和psutil的综合性进程管理库,提供进程创建、管理、通信、监控等全方位功能。
- 🚀 进程生命周期管理 - 完整的进程创建、启动、停止、重启功能
- 💬 多种进程间通信机制 - 队列、管道、共享内存等多种IPC方式
- 📊 实时进程监控 - CPU、内存、IO等性能指标实时监控
- 🎯 资源管理和限制 - 灵活的资源限制和告警机制
- 🏊 进程池管理 - 高效的进程池实现,支持任务调度
- 🔧 数据序列化和验证 - 多格式数据序列化和完整的数据验证
- 📝 完整的日志记录 - 结构化日志记录和多种输出方式
- 🔒 线程安全 - 所有组件都经过线程安全设计
- 🌐 跨平台支持 - 支持Windows、Linux、macOS等主流操作系统
- 📚 详细文档 - 包含multiprocessing和psutil集成指南的完整文档
pip install liberprocess# 打包
python setup.py sdist bdist_wheel# 生成文档
sphinx-build -b html docs docs/_buildgit clone https://github.com/liberprocess/liberprocess.git
cd liberprocess
pip install -e .# 安装开发依赖
pip install liberprocess[dev]
# 安装测试依赖
pip install liberprocess[test]
# 安装文档依赖
pip install liberprocess[docs]
# 安装所有可选依赖
pip install liberprocess[msgpack,yaml]import liberprocess as lp
# 创建进程管理器
manager = lp.ProcessManager()
# 定义目标函数
def worker_function(name, count):
for i in range(count):
print(f"Worker {name}: {i}")
time.sleep(1)
# 创建并启动进程
manager.create_process(
target=worker_function,
args=("worker1", 5),
name="MyWorker"
)
manager.start()
# 等待进程完成
manager.join()import liberprocess as lp
# 创建进程池
pool = lp.ProcessPool(processes=4)
# 提交任务
results = []
for i in range(10):
result = pool.apply_async(worker_function, args=(f"task_{i}", 3))
results.append(result)
# 获取结果
for result in results:
result.get()
# 关闭进程池
pool.close()
pool.join()import liberprocess as lp
# 队列通信
queue_comm = lp.create_queue_comm()
queue_comm.put("Hello from main process")
message = queue_comm.get()
# 管道通信
pipe_comm = lp.create_pipe_comm()
pipe_comm.send("Hello through pipe")
data = pipe_comm.recv()
# 管理器通信
manager_comm = lp.create_manager_comm()
shared_dict = manager_comm.create_dict()
shared_list = manager_comm.create_list()import liberprocess as lp
# 创建进程监控器
monitor = lp.create_monitor(monitoring_interval=1.0)
# 添加进程到监控
monitor.add_process(process_id)
# 设置监控回调
def on_process_event(event_type, process_id, data):
print(f"Process {process_id}: {event_type} - {data}")
monitor.set_callback(on_process_event)
# 开始监控
monitor.start_monitoring()import liberprocess as lp
# 创建性能收集器
collector = lp.PerformanceCollector()
# 收集进程性能数据
performance_data = collector.collect_process_performance(process_id)
print(f"CPU使用率: {performance_data['cpu_percent']}%")
print(f"内存使用: {performance_data['memory_info']['rss']} bytes")
# 获取历史数据
history = collector.get_historical_data(process_id, hours=1)
stats = collector.get_statistics(process_id)import liberprocess as lp
# 创建资源管理器
resource_manager = lp.ResourceManager()
# 设置资源限制
resource_manager.set_cpu_limit(80.0) # CPU使用率不超过80%
resource_manager.set_memory_limit(1024 * 1024 * 1024) # 内存不超过1GB
# 设置告警回调
def on_resource_alert(alert_level, resource_type, current_value, limit_value):
print(f"资源告警: {resource_type} {alert_level} - 当前: {current_value}, 限制: {limit_value}")
resource_manager.set_alert_callback(on_resource_alert)
# 开始监控
resource_manager.start_monitoring()liberprocess提供了一系列便捷函数,简化常见操作:
import liberprocess as lp
# 快速创建进程
process_manager = lp.create_process(
target=my_function,
args=(arg1, arg2),
name="MyProcess"
)
# 快速创建进程池
pool = lp.create_process_pool(processes=4)
# 快速创建通信对象
queue_comm = lp.create_queue_comm(maxsize=100)
pipe_comm = lp.create_pipe_comm(duplex=True)
manager_comm = lp.create_manager_comm()
# 快速创建监控器
monitor = lp.create_monitor(monitoring_interval=2.0)
# 快速创建日志记录器
logger = lp.create_logger(name="MyApp", level="DEBUG")
# 获取系统信息
system_info = lp.get_system_info()
process_info = lp.get_process_info(pid=1234)import liberprocess as lp
# 设置全局配置
lp.Config.set_debug_mode(True)
lp.Config.set_default_log_level("DEBUG")
# 获取当前配置
config = lp.Config.get_config()
print(config)import liberprocess as lp
# 创建日志记录器
logger = lp.Logger(
name="MyApp",
level="INFO",
console_output=True,
file_output=True,
log_file="app.log"
)
# 记录日志
logger.info("应用程序启动")
logger.warning("这是一个警告")
logger.error("发生错误")
# 使用便捷方法
logger.log_with_context("INFO", "处理任务", {"task_id": 123, "user": "admin"})import liberprocess as lp
# 创建数据验证器
validator = lp.DataValidator()
# 定义验证规则
rules = {
"name": {"required": True, "type": str, "min_length": 2},
"age": {"required": True, "type": int, "min_value": 0, "max_value": 150},
"email": {"required": False, "type": str, "pattern": "email"}
}
# 验证数据
data = {"name": "张三", "age": 25, "email": "zhangsan@example.com"}
is_valid, errors = validator.validate(data, rules)
if is_valid:
print("数据验证通过")
else:
print(f"验证失败: {errors}")import liberprocess as lp
# 创建序列化器
serializer = lp.DataSerializer()
# 序列化数据
data = {"name": "测试", "values": [1, 2, 3], "timestamp": datetime.now()}
serialized = serializer.serialize(data, format="json")
# 反序列化数据
deserialized = serializer.deserialize(serialized, format="json")
# 压缩序列化
compressed = serializer.serialize_compressed(data, format="json", compression="gzip")
decompressed = serializer.deserialize_compressed(compressed, format="json", compression="gzip")liberprocess采用模块化设计,主要包含以下模块:
liberprocess/
├── core/ # 核心进程管理模块
│ ├── process_manager.py # 进程管理器
│ ├── process_creator.py # 进程创建器
│ └── process_pool.py # 进程池
├── communication/ # 进程间通信模块
│ ├── queue_comm.py # 队列通信
│ ├── pipe_comm.py # 管道通信
│ └── manager_comm.py # 管理器通信
├── monitoring/ # 监控模块
│ ├── process_monitor.py # 进程监控
│ ├── performance_collector.py # 性能收集
│ └── resource_manager.py # 资源管理
└── utils/ # 工具模块
├── logger.py # 日志记录
├── validator.py # 数据验证
└── serializer.py # 数据序列化
- 高效的进程管理: 基于multiprocessing的高性能进程管理
- 低开销监控: 优化的监控算法,最小化性能影响
- 内存友好: 智能的内存管理和数据清理机制
- 可扩展性: 支持大规模进程管理和监控
- 稳定性: 完善的错误处理和恢复机制
- Python 3.7+
- psutil 5.8.0+
- 支持的操作系统:Windows、Linux、macOS
我们欢迎社区贡献!请查看 CONTRIBUTING.md 了解如何参与项目开发。
# 克隆仓库
git clone https://github.com/liberalchang/liberprocess.git
cd liberprocess
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/macOS
# 或
venv\Scripts\activate # Windows
# 安装开发依赖
pip install -e .[dev]
# 运行测试
pytest
# 代码格式化
black liberprocess/
# 类型检查
mypy liberprocess/本项目采用 MIT 许可证。详见 LICENSE 文件。
- 🎉 首次发布
- ✨ 完整的进程管理功能
- ✨ 多种进程间通信机制
- ✨ 实时监控和性能收集
- ✨ 资源管理和限制
- ✨ 数据验证和序列化
- ✨ 完整的日志记录
- 📚 完善的文档和示例
liberprocess 提供了完整的文档,包括:
- 📖 完整文档 - 详细的API文档和使用指南
- 🚀 快速开始 - 快速上手指南
- 📚 详细教程 - 深入的功能教程
- 🔧 multiprocessing和psutil集成指南 - 详细介绍如何使用Python标准库multiprocessing和psutil库
- 💡 实际应用示例 - 丰富的实际应用案例
multiprocessing和psutil集成指南 包含:
- multiprocessing基础概念和使用方法
- psutil系统监控功能详解
- liberprocess与两个库的集成应用示例
- 高性能数据处理系统实现
- 实时系统监控解决方案
- 常见问题解答和性能优化建议
感谢所有为本项目做出贡献的开发者和用户!
liberprocess - 让进程管理变得简单而强大!