ajax加载时间长,如何最好地处理需要很长时间才能完成的ajax请求?

让我先说这个问题,说我对构建处理器密集型Web应用程序的设计相对较新。我有一个基于LAMP堆栈的功能应用程序,现在我正处于开发阶段,我必须实现扩展。

我有一个运行PHP代码的Web服务器ssh进入远程Windows机器以执行批处理过程,根据并发性可能需要大约15到45秒才能完成。我正在使用phpseclib pear library package提供的SSH2实现登录到远程计算机以使用Sysinternals' PsExec启动批处理文件。 PHP代码看起来像这样:

$remoteCommand = 'psexec -u username -p password -h cmd /C "C:\\automate_process.bat >> automate_process.log 2>>&1"';

$ssh_connection->exec($remoteCommand);

这实际上是从托管php代码的Web服务器调用远程Windows机器上的automate_process.bat。但是,automate_process.bat文件需要一段时间才能执行,如果有并发用户,有时会导致Web服务器的PHP超时。增加php.ini中的max_execution_time值并不能解决问题。

使用PsExec,-d开关不会等待automate_process.bat完成,并且将允许PHP脚本继续而无需等待。因此,在max_execution_time前面解决了问题,但出现了另一个问题:通知最终用户的浏览器automatic_process已完成。如何以有效的方式完成?看似需要的是应用程序代码中的体系结构更改。

起初我认为某种民意调查会起作用 - 也许是长期民意调查?我只想ping远程Windows机器以查看进程是否完整。但我读到的所有内容都表明,长轮询是Apache的一个严重负担,而远程Windows机器正在运行。此外,Web上的大量写作都指向Node.js作为解决方案。这真的是解决这类问题的方法吗?我是否必须学习一个新的框架,以便在应用程序扩展时使此操作更加强大?我很好,但我想知道我是否可以混合使用PHP和Node.js。如果是这样,有人可以提供一个简单的例子让我开始吗?

谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值