dadd管理守护进程。
dadd的Python项目详细描述
dadd管理守护进程!
dadd是另一种流程管理器。有很多很棒的工具 像管理长时间运行的supervisord和daemontools 过程。这些工具可以配置为添加和删除进程 因为你需要扩展。爸爸做了一些不同的事情。
下面是dadd的工作:
- Start a process on a host in a temporary directory
- Daemonize the process
- On completion of the process, the temporary directory is cleaned up
- 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许可证