纯python远程作业调度系统

pscheduler的Python项目详细描述


https://travis-ci.org/parashardhapola/pscheduler.svg?branch=masterhttps://img.shields.io/pypi/l/pscheduler.svghttps://img.shields.io/pypi/v/pscheduler.svghttps://img.shields.io/pypi/wheel/pscheduler.svgCode Health

设置

  • 此pscheduler服务非常关键,这取决于远程计算机上共享文件系统的使用情况。为所有远程计算机设置nfs。
  • 对所有远程计算机具有相同的登录凭据。
  • sshnohup这样的基本linux实用程序应该安装在所有远程计算机上。

安装

pscheduler是仅限python 3的模块,可以使用pip轻松安装:

^{tt1}$

配置

  • 使用pscheduler service start启动服务。这将在主目录下创建目录.pscheduler
  • 编辑文件~/.pscheduler/hosts.cfg并在每行中添加远程计算机的所有IP地址/域别名。保存并退出。或者,如果您在hpc环境中并且已经安装了lsf,则可以使用提供的脚本bhostsWrapper.py直接填充远程计算机。然后,您应该对其进行编辑,以从列表和任何其他所需主机中删除头节点计算机。
  • 如果尚未设置远程计算机的无密码登录,请使用提供的脚本batchSetupLoginKeys.py进行设置。

用法

  • 有四种基本实用程序:

    servicestart/stop the background service
    hostsget information on remote machines
    subsubmit jobs
    jobsmonitor running/pending job

    See helpfiles of individual subcommands for further details

  • 在提交任何作业之前启动后台服务非常重要

  • 示例:

    • Start service: ^{tt2}$
    • Submit job: ^{tt6}$
  • 挂起和正在运行的作业配置文件分别存储在挂起和运行目录中的~/.pscheduler/jobs下。默认情况下,包含标准输出(json格式)的已完成作业配置文件存储在~/.pscheduler/jobs/finish下,但用户可以在提交作业和提供输出位置路径时使用-o标志为此文件选择自定义位置。

  • ~/.pscheduler/daemon.log包含后台服务的日志。您应该看看这个文件,看看是否抛出了任何错误消息。

  • 请注意,pscheduler不会忽略其他调度程序的调度,而只是根据资源的可用性(当前只有cpu核数)启动作业。

未来版本的路线图

  • 实现jobs子命令
  • 在出现资源峰值时重新启动作业
  • 改进捕获致命异常的代码

历史

  • 0.0.1:
    • 首次α前释放
  • 0.0.2:
    • 使用wrapper.py创建的cli
    • bhost wrapper脚本从phosts模块分离出来
    • introducted hosts.cfg:用户可编辑的主机列表
    • 用于创建登录密钥的批处理脚本
    • psub现在以json格式保存
    • dev:使用python脚本提交到pypi
    • dev:setup.py中版本的自动更新
  • 0.0.3:
    • 在用于命令行调用的脚本中添加了pscheduler
  • 0.0.4:
    • 部署修复程序
  • 0.0.5:
    • 导入修复程序
  • 0.0.6:
    • json修复
  • 0.0.7:
    • 已实现jobs子命令
    • 已纠正phosts双主机检查问题
    • daemon中改进的提交过程
    • 类命名约定已更改
    • 默认主机固定为本地主机。创建无密码登录到本地主机
    • dev:travis ci现在用于测试
  • 0.1.0:
    • pdaemon修复程序
    • 回滚ssh keygen

贡献者

帕拉沙尔达波拉(parashar.dhapola@gmail.com

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用无循环和乘法的递归调用查找值   java字符串大小冲突   在一组Java文件对象中查找唯一的超级目录   没有Eclipse控制台输出窗口(Java)?   java这怎么等于105而不是15?   java Adempiere列调出,用于不处理从(代码)选项导入和创建行的字段   java tomcat、2个webapps、2个log4js,但这两个应用都记录到一个文件中   lambda理解Java谓词   HotspotFX上的Java EOF问题   java google应用程序引擎:如何向连接/断开通道“ping”添加信息?   java如何使用VTDXML获取一个元素的所有名称空间声明?   java如何使用drawLine()获得一条线以随机方向拍摄?   java transactionManager应该使用哪个SessionFactory?   java在安卓上播放声音   在Mac上使用JBDC对SQL Server进行java Windows身份验证   java基本列表和字符串[]   java NamedParameterJdbcTemplate从中选择*   扩展上的java Android可扩展列表视图   使用ApacheAxis2的java SOAP附件