【问题标题】:Executing server-side Unix scripts asynchronously异步执行服务器端 Unix 脚本
【发布时间】:2009-12-13 21:07:43
【问题描述】:

我们有一组 Unix 脚本(和/或 Python 模块),每个脚本都执行一个长时间运行的任务。我想为他们提供一个执行以下操作的 Web 界面:

  • 要求将相关数据传递到脚本中。
  • 允许启动/停止/杀死它们。
  • 允许监控脚本提供的进度和/或其他信息。
  • 可能是某种日志记录(尽管脚本已经进行了日志记录)。

我确实知道如何编写执行此操作的服务器(例如,通过使用 Python 的内置 HTTP 服务器/JSON),但正确执行此操作并非易事,我不想重新发明轮子。

是否存在任何允许维护异步服务器端任务的现有解决方案?

【问题讨论】:

  • BuildBot、Hudson 等持续集成系统可能满足您的所有需求。

标签: python http unix asynchronous


【解决方案1】:

Django 非常适合编写 Web 应用程序,而子进程模块 (subprocess.Popen en .communicate()) 非常适合执行 shell 脚本。如果你愿意,你可以给它一个标准输入、标准输出和标准错误流进行通信。

【讨论】:

  • 哈!我怀疑 Django 会是第一个答案。然而,虽然一个很好的框架让一些事情变得更容易,但我仍然需要实现大部分所需的接口。我特别希望避免编写所有视图来监控正在运行的任务。
  • 这不会让 SuperUser 成为更多问题吗?这听起来像是系统管理员所做的事情。
【解决方案2】:

回答我自己的问题,我最近看到了Celery 1.0 的公告,这似乎可以满足我的大部分需求。

【讨论】:

    【解决方案3】:

    我会使用SGE,但我认为这可能会超出您的需求...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-31
      • 2018-06-08
      • 2016-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多