我有一个运行Linux的“设备”(由于缺乏更好的描述)。

目前,我进入框中启动工作。这对我的用户不太友好,因此我正在整理一个简单的Web UI来启动脚本。工作的运行时间为10秒至几个小时。 Web UI需要反映工作的状态。

过去,我通过在服务器上运行一个守护程序,该守护程序在服务器上运行守护程序,该守护程序要查看Spool Directory(或DB表),以获取新的作业请求,催生一个过程,监视该过程并为DB表中的Web UI提供信息或状态文件。然后,Web UI将作业请求删除到Spool DIR(DB)中,并偶尔检查状态文件(DB)。这可能对此任务过大。

对于当前任务,我正在考虑从CGI产卵,并偶尔检查作业在进步或退出时写入的状态文件。

我的问题:这样做的方法更好(更简单/更快/更强大)吗?我应该知道的现有模式或工具吗?

(Python解决方案是理想的。)

谢谢。

有帮助吗?

解决方案

我在许多项目中这样做。一个网络应用(主要是python/cgi),它催生一个单独的python脚本(使用子进程) 守护自身 做这项工作。然后,Web-App继续发布AJAX请求以检查守护程序进程的进度(我使用简单的TXT文件进行通信,数据库可能会更好)。一个不错的触摸是将最终用户完成后,将其完成(带有检索结果的链接)。这样,用户可以关闭所需数小时的工作的Web浏览器。

其他提示

我不确定我是否正确理解了您的问题,但是我认为您有多个可以同时运行的“作业”,并希望它们在网页上显示是否完成?

启动作业时,网页(例如Python&mod_wsgi)将启动一个可以输入该作业的python脚本,例如,sqlite数据库并运行工作,一旦作业完成,脚本将更新作业的条目标记为完整

状态页面只会显示SQLite的内容。

除了工作ID之外,您还想将其放入数据库,也许开始/结束时间取决于您要在工作状态上显示的内容

在旁注上 - 如果“工作”是汇编,请见面 哈德森

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top