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 Spring MVC 4.0 RequestMapping无值,基于methodname   java Samsung 10 plus不允许wifi p2p发现   春爪哇。伊奥。IOException:找不到文件   java JasperReport饼图示例   java我试图使用mockito注释来测试我的代码,但无法解决mockito异常   命令行界面Java:制作简单的交互式cli应用程序   java jdk1之间的区别是什么。7_9 9和jdk1。7_271   java重载一个被重写的、继承的方法   java LazyInitializationException春季启动   java Play Framework 2.2.1 3个表之间存在大量关系