dadd管理守护进程。

dadd的Python项目详细描述


dadd管理守护进程!

dadd是另一种流程管理器。有很多很棒的工具 像管理长时间运行的supervisord和daemontools 过程。这些工具可以配置为添加和删除进程 因为你需要扩展。爸爸做了一些不同的事情。

下面是dadd的工作:

  1. Start a process on a host in a temporary directory
  2. Daemonize the process
  3. On completion of the process, the temporary directory is cleaned up
  4. If something failed, dadd notifies and records the logs

就这样!

为什么是爸爸?

许多分布式计算平台都依赖于 与将由工作进程运行的代码一起发布。Celery就是一个很好的例子 范式。这种风格的问题在于 用新版本打断你的员工。dadd开始这个过程 立即对其进行守护,以便如果DADD工作进程重新启动,则 目前正在进行的工作不受影响。

dadd还使每个过程合理地原子化。它不做任何假设 而不是安装了python和virtualenv。当 进程已启动,可以下载文件和python依赖项 安装是为了运行一些代码。

dadd并不意味着自动缩放系统或提供 过程。它的目的是run进程作为守护进程。它是 与其他系统集成的过程的责任。爸爸 期望进程自行退出。

定义流程

进程是通过规范定义的。 定义两个键。下面是一个示例:

{
  "cmd": "python -m mypackage"
  "download_urls": [
    "https://s3.com/mybucket/some_data.json",
  ],
  "config": {
    "db": "postgres://username:pw@dbhost:5432/mydb",
  },
  "python_deps": [
    "mypackage"
  ],
  "python_cheeseshop": "http://cheese.mydomain.net"
}

当你想运行一个进程时,你可以将规范发布给dadd主控 服务器。它会找到一个主机来运行它并将其发送到 工人。然后,工人将设置一个临时目录并允许 运行进程下载任何文件,安装一个virtualenv和 python_deps并运行命令。

规范中提供的任何配置都将写入 临时目录为json。文件名对 通过app_settings\u json在环境中处理env var.

如果您需要安装特定奶酪店的软件包,可以 在规范中提供一个python cheeseshop,它将在 安装任何python依赖项。

数据处理

dadd附带了一个命令行工具,可以启动不同的dadd 过程。

达德大师

运行dadd master将启动主服务器。这使得 进程和主机的列表。当你尝试开始一个过程时 试着找个主人。如果找不到主机,将删除该主机 从主机列表中。

DADD工人

运行dadd worker启动一个worker进程。如果主人是 在配置或环境中定义,它将注册自己,以便 它可以开始接受主人的工作。这个注册发生了 像心跳一样周期性地保持工作人员的同步 和主人在一起。

跑步机

dadd run命令将进程作为deamon运行,并生成 在运行命令之前处理。如果在 配置和规范在master上包含一个进程id,它将 通知主机其状态,并上载其登录失败。

  • 免费软件:BSD许可证

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

推荐PyPI第三方库


热门话题
java在JavaFX TableView中设置行高   java生成范围内的随机数   ProcessBuilder或DefaultExecutor启动的“RunAs”子进程的java读取标准输出   java ExoPlayer播放多个视频   基于匹配器的java Mockito ArgumentCaptor捕获条件   java正在创建更新程序。更新/下载部分   java请求。getAttribute()在servlet中不起作用   java Android Http请求:我不理解以下代码:   java ArrayList Failfast ConcurrentModificationException   if语句Java/LWJGL Pong AI问题   使用Oracle 10g长字段填充Grails域对象时的java空指针   当用户触摸屏时,java按钮不从左上角移动到右下角   未捕获javasocket读取IOException?   用Java绘制一段圆的几何图形?