如何让PHP文件在后台运行,不限时间到运行完全

如何让PHP文件在后台运行,不限时间到运行完全,第1张

方案1:php

<?php

$db = mysql_connect( ... )

$mysql_select_db(...)

$sqlStr = .....

$res = mysql_query($sqlStr)

....

....

mysql_close($db)

?>

运行的时候, 在终端用以下命令: 

%PHP_HOME%/bin/php ur_php_file.php &

方案二:

mysql -uxxxx -pxxxx -Ne "select * from ....." db_name > tmpfile &

执行侍氏完了之后, 把tmpfile里边的退格键(\t)替换高键成逗号“,”, 把文件后戚谈巧缀改为csv就可以

在后台执行,也就是cli模式。

去php安装目录找到php.exe这个文件,并且在命令行下执行它。具体方法去查手册或google:php

cli模式。

不过你说的这个需求,用不用拆兄cli模式都无所谓。其实这只是个异步请求而已。

你说的a脚本在执行过程中旅芹袭给b脚本传输数据。其实可以使用http协议,然后post或者get参数来达到传数据的目的。

5楼给你的那个函数,其实就是放在a脚本中用来通过http协议请求b脚本的一个函数。你可以在b文件中直接使首配用$http_get_vars或$http_post_vars来得到a脚本传过去的数据。

另外还可以使用curl库来实现这种模拟http请求。

在运行前 先要了解一下 什么是文件描述符。

什么是文件描述符?

文件描述符是一个简单的正整数,用以标明每一个被进程所打开的文件和socket。

最前面的三个文件描述符(0,1,2)分别与标准输入(stdin),标准输出(stdout)和标准错误(stderr)对应。

"2>&1 >file"和 ">file 2>&1"区别?

1.php test.php 2>&1 >唤如梁 file :错误输出到终端,标和运准输出被重定向到文件file。

2.php test.php >file 2>&1 :标准输出被重定向到文件file,然后错误输出也重定向到和标准输出一样,所以错误也输出到文件file。

nohup命令可以在用户橡烂退出终端后仍然执行程序,

“2>&1 >/dev/null”表示不显示标准输出和错误输出,

最后的&表示推到后台执行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12480087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存