首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从网站监控后台进程

从网站监控后台进程
EN

Stack Overflow用户
提问于 2013-01-22 23:31:45
回答 3查看 1.8K关注 0票数 0

我有一个网站上,人们可以要求某些文件进行处理,处理是在我的服务器上完成,然后处理的文件可供下载。我想让我网站的管理员从网站上看到处理代码是否正在运行,是否失败,是否正在等待等。

所以我想我只想在网页上有一行“等待”,“活动”,“失败”等等,我想它会使用php。

这就是大体轮廓,特别是我的系统是如何工作的:

·当用户选择一个处理任务时,它会使用php添加到mysql数据库中。

·一个名为monitor_database.py的python代码运行在screen实例中,它监视数据库,并在注意到数据库中有新请求时启动相应的处理作业。

·处理完成后,更新数据库。

因此,我希望能够从我的网页上看到screen会话和我的monitor_database.py是否正在运行,以及monitor_database.py是否已经发送了要处理的内容,或者正在等待。

有没有人有关于如何最好地实现这一点的建议?

EN

回答 3

Stack Overflow用户

发布于 2013-01-22 23:36:53

如果你不适应IE,你可以使用WebSockets。

这个答案和你的问题一样一般;-)

票数 0
EN

Stack Overflow用户

发布于 2013-01-24 19:26:31

最常见的方法是使用Ajax调用。例如,看看有多少旅游网站在搜索航班时会显示状态屏幕。

具体的实现方式高度依赖于应用程序,但原则上您有一个“状态”页面(可以是用户上传文件的页面)。状态页面包含JavaScript,它每隔30秒调用服务器上的一个PHP脚本;PHP脚本反过来查询数据库以查找当前文件的状态,并返回一些XML或JSON。web页面上JavaScript解释XML或JSON,并用结果更新页面。这里有更多关于here的描述。这里有示例代码here

票数 0
EN

Stack Overflow用户

发布于 2013-05-16 00:28:05

这是我最终想要的解决方案。

首先,我在数据库上创建了一个新的mysql表,其中只包含一行,描述代码的状态(等待、执行此操作、执行那个等)。

现在我在我的页面上有了这个php代码:

代码语言:javascript
运行
复制
exec( "ps aux | grep process_name.py | grep -v grep | grep -v emacs", $pids );
// This looks for any processes named 'process_name.py', ignoring those caused by emacs,
// and the one caused by grep itself.
$r_process = @mysqli_query($database, "SELECT status FROM process_status WHERE status_id=1");
// This checks the status of the file in the database.
$Monitor = mysqli_fetch_array($r_process);
$StatusName = $Monitor['status'];
if ( empty($pids) )
    {
    $Status = 'Failed';
    }
else
    {
    $Status = 'Operating';
    }

现在,在我的html中,我可以有一个东西显示‘process1上失败’或‘在进程2上操作’,这取决于我的进程是如何进行的。我必须刷新我的页面才能使其更改。我相信前面的答案假设我希望避免刷新页面,并提出了避免这种情况的方法,但实际上我只是想要一种简单的方法来检查进程是否正在运行。exec ( gps... )是关键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14462147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档