尼玛,好苦逼啊,又被人逼的去搞PHP,伤心,求高人指点一个弱智问题

dick_china 2012-09-11 10:25:15
先吐槽
原本做IOS开发,被朋友认为程序员都是万能的,麻烦帮做一个网站呢。。。。。。。。
尼玛啊,郁那个闷

下了份PHP做的某个网站的开源代码,准备修修补补搞定
结果发现这坑爹人开发人员在运行一个php文件时,连接数据库,然后php完成后断开数据库,这中间由于要转化一个文件,极其耗费时间的动作啊,我测试的文件要转换30秒++,结果那坑爹的数据库就开始报连接超时等问题了。。。。。。
因为他执行的是exec的函数去执行一个外部程序,等待返回,然后继续执行后面的一些操作(包括数据库插入数据)。这样明显有问题的嘛,这坑爹的怎么能这么干啊,我不是要修改很多了啊啊啊啊啊,
于是我捉摸着先勉强让整个网站跑起来吧,于是准备修改下exec这部分的逻辑,改成不等待执行结果的返回,直接异步去调用一个外部程序,然后继续执行后续操作。这样至少不会因为这个地方超时吧。

但是更坑爹的是,尼玛我这种菜B找度娘找了半天也没找到合适的异步执行外部程序的代码。。。。
好吧,我太菜了,
求高手直接致电下吧。。。。。。
如果异步执行一个外部程序,比如exec("a.exe");如何立即返回结果而不等待执行a.exe结束就返回。



大神求救了
...全文
262 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
amani11 2012-09-12
  • 打赏
  • 举报
回复
难道非要调用这个外部的.exe?

超时,有可能是链接外网等待什么结果

非要异步执行,可将命令写入数据库,让另外一个进程去跑,模拟队列。至少不用在意什么系统
dick_china 2012-09-12
  • 打赏
  • 举报
回复
我有看到pcntl_fork,看到fork,我猜是unix的,所以也没用,
我现在就是在windows上,难道就这么苦逼的搞不定了。。。。那我就要搞好多事情了来完成这个貌似简单的工作了
dick_china 2012-09-12
  • 打赏
  • 举报
回复
晕的一塌糊涂,PHP居然连这样的事都不支持啊
伤心,看样子要自己搞了
dick_china 2012-09-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

难道非要调用这个外部的.exe?

超时,有可能是链接外网等待什么结果

非要异步执行,可将命令写入数据库,让另外一个进程去跑,模拟队列。至少不用在意什么系统
[/Quote]
这个也是我的想法,如果解决不了,就只能这样做了,而且实际上这样做更加正确靠谱点
diyle 2012-09-12
  • 打赏
  • 举报
回复
<?php
$handle = popen('php demo.php', 'r');
pclose($handle );
?>

demo.php
<?php
exec("xxx");
?>
MrCeffoo 2012-09-12
  • 打赏
  • 举报
回复
这是什么程序代码?在哪下的?看看去
xuzuning 2012-09-12
  • 打赏
  • 举报
回复
你可以放弃这个开源代码,另换一个

在php程序中执行系统命令,只适合于命令行方式,web 方式下是不合适的
不知道你在php程序中执行系统命令的目的
taodala 2012-09-11
  • 打赏
  • 举报
回复
同求代码,我也需要这代码.....
ImN1 2012-09-11
  • 打赏
  • 举报
回复
php在win没有多进程,unix可用 pcntl_fork

你应该了解php特性,php适用于快速处理简单请求,同等硬件下,对于简单任务,用户越多,比其他语言优势越明显,调用外部程序这类工作一般交给java什么的去做吧,接口和安全性更高

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧