windows系统下python进程管理系统

两年来,我们项目的爬虫代码大部分都是放在公司的windows机器上运行的,原因是服务器太贵,没有那么多资源,而windows主机却有很多用不上。为了合理利用公司资源,降低数据采集成本,我在所以任务机器上使用anaconda安装了python环境,并将代码部署到每台机器上,当有爬虫任务时,我就去每台机器启动相应的爬虫脚本。这样的运行方式一直存在了大约两年,期间也遇到一些问题,如之前使用fastapi写了一个控制服务【master+slave】的方式,但是在启动爬虫的过程中,存在爬虫起不来,或者进程已经存在,但由于没有添加详细的管理控制,导致日志文件冲突等问题。这些问题,我一直有想法去解决,但碍于我本人比较懒,同时对于正常运行的代码不想修改的等原因,导致我一年都没有从根本上解决这个问题。
最近没有什么开发任务,我从2月份过年回来,也一行代码没写。本着不能让自己荒废的原则,我准备重新设计一个系统,用于管理多个工作节点的python脚本,同时掌握每台机器的资源使用情况,实现通过一个主节点对子节点程序进行控制。
下面图片就是现在正在运行的爬虫项目,里面的.bat文件对应每一种爬虫,在windows下只要双击这个文件就可以启动爬虫,关闭对应生成的cmd框就能关闭爬虫,简单粗暴。
原windows爬虫集合脚本

技术选型

【这里的技术选型会随着开发进程不停得更新】

排除gerapy+scrapy

由于我的爬虫代码都不是使用scrapy写的,这里我首先排除gerapy+scrapy的方案,主要原因是每个代码改动过大,而且我们的脚本时效性要求高,修改为scrapy稳定性存疑,加之我也不是使用scrapy的高手,这里直接排除。

k8s+docker

我在开发脚本之初就想使用docker+k8s来部署这个分布式的爬虫系统,但是由于windows环境下docker运行存在一些稳定性问题,同时我没有使用过k8s,可能最后开发完了对于日志管理等方面会出现未知的风险,我暂时排除这个方案。

python服务控制进程方案【选定】

我在一年前就使用fastapi实现过相应的功能,但没有深入到每一个进程,只涉及到主启动脚本。在使用过程中,也存在了一些问题,同时也没有使用日志采集系统监控。由于我有这些经验,我这次选型还是准备做纯python服务控制进程的方案,这次主要是从0开发,维持每一个进程的稳定性,【后期采用日志采集监控系统管理日志】。

python服务控制进程方案

这里我还是准备采用fastapi这个框架来作为主服务,同时使用mongodb作为数据库,redis用于维护进程心跳机制,整个后端我自己来构造,前端打算集成到我们的爬虫管理系统内。
这里我还是采用一主多从的方案,主节点负责控制启停任务,心跳检测,资源调控【监控每台任务机与服务器的内存与io等参数】

主节点开发

为了实现多节点的控制,我将主节点的功能一一列举,并对每个功能模块详细的做出设计,并记录实现方案。

主节点功能列举

  1. 发送启动,暂停请求到子节点,用于控制爬虫的启停
  2. 从redis获取心跳参数,展示每台机器运行的进程详情
  3. 监控服务器的资源

子节点开发

子节点功能列举

  1. 监控当前节点正在运行的python进程,每隔一段时间上报到redis
  2. 接受主节点的请求,对爬虫进程控制【启动/关闭】

相关推荐

  1. Python】学生管理系统

    2024-03-20 08:54:04       34 阅读
  2. Qt: windows关闭系统窗体

    2024-03-20 08:54:04       38 阅读
  3. Windows系统安全加固-授权管理

    2024-03-20 08:54:04       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 08:54:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 08:54:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 08:54:04       87 阅读
  4. Python语言-面向对象

    2024-03-20 08:54:04       96 阅读

热门阅读

  1. 比特币,区块链及相关概念简介(一)

    2024-03-20 08:54:04       48 阅读
  2. 安装tensorflow2.4

    2024-03-20 08:54:04       32 阅读
  3. 初探文件包含漏洞

    2024-03-20 08:54:04       45 阅读
  4. leetcode - 1166. Design File System

    2024-03-20 08:54:04       42 阅读