【PHP进程锁定问题分析研究_PHP教程】教程文章相关的互联网学习教程文章

使用PHP生成多个进程来处理数据.【代码】

我有一个需要处理的数据队列(Amazon SQS),我想用多个进程(用PHP)来完成. 我希望童工做这样的事情(pseduoish代码):while(true) {$array = $queue->fetchNItems(10); // get 10 itemsif(!count($array)) killProcess();foreach($array as $item) {... // process the item$queue->remove($item);}sleep(2); } 我总是需要一个子进程来运行,但是在需要的时候我想(fork?)一个子进程,以便它可以帮助更快地处理队列. 有人可以帮我解决我...

php – 如何限制进程数?【代码】

在我的PHP Web应用程序中,我试图限制运行的CPU /内存密集型进程的数量(例如,ImageMagick的’convert’命令).我有许多执行各种脚本的crons作业,这些脚本可能会执行这些CPU /内存密集型进程的太多实例. 在我尝试限制此类过程时,我首先检查我的系统是否已经运行了一定数量的进程.功能:function has_reached_process_limit($process, $limit) {$command = 'ps -eo comm | grep ' . $process;exec($command, $output, $return);if (cou...

多个PHP进程【代码】

我有一个页面,用户输入他们的电子邮件地址,点击“发送”,网络服务器将通过电子邮件向他们发送~10mb附件.现在,我的页面只显示“发送…”,用户在此页面上等待大约20秒. 相反,我想让它说“你的附件将在几分钟内通过电子邮件发送”,将该过程发送到其他地方并允许用户继续浏览而无需打开新标签. 我真的只需要有人指出我正确的方向,因为我现在甚至都不知道谷歌会做什么.解决方法:您可以调用另一个将处理电子邮件发送的php文件,并确保将此...

当用户中止请求时,如何让PHP-FPM进程终止? (Nginx的)【代码】

我知道Nginx与PHP-FPM进程无关,但我更喜欢如果用户中止,PHP-FPM进程死了,所以它不会继续做不必要的事情或浪费资源.对于PHP-FPM / Nginx,无论用户是否中止,都会发生trigger_error:<?phpsleep(30); trigger_error('Still happened?');?>如何为PHP-FPM执行用户中止? (如果可能的话)解决方法:You can decide whether or not you want a client disconnect to causeyour script to be aborted.根据PHP手册:Connection Handling 要设置...

linux – 管理php守护进程【代码】

如何在不将简单的cli运行时更改为php-fpm的情况下从Web管理我的守护程序? 操作系统启动后守护进程自动启动,并在没有php-fpm池的情况下作为cli-application运行.所以守护进程生态系统的基本思想是在没有php-fpm池(CLI-SAPI)的情况下工作. 服务器配置: > Debian 7> Apache 2.2> php5-fpm(v 5.4.35) – mod_fastcgi> daemon.php> daemon_manager.php – 从命令行开始|停止|重新启动| kill daemon.php的管理脚本.> daemon_manager_...

使用PHP列出服务器上所有正在运行的进程【代码】

我正在尝试使用PHP获取当前在我的Ubuntu服务器上运行的所有进程的列表.理想情况下,我想获得以下信息: >进程ID>用于执行进程的命令>给予过程的论据 我知道我可以使用exec来调用ps来列出当前正在运行的进程.exec('ps aux', $output);但是,输出的格式是任意数量的空格,因此解析它并不是世界上最容易的事情. 我可能会使用explode或preg_split进行解析,但有没有更简单的方法来获取使用php的所有正在运行的进程的列表,以及进程ID,命令和...

在Windows上用PHP执行并获取pid后台进程【代码】

我在Windows apache服务器的后台启动了一个进程. index.php跟随此:<?php $cmd = "C:/xampp/php/php.exe -f test.php"; pclose(popen("start /B ". $cmd, "r")); echo "OK"; ?>test.php如下:<?php sleep(5); file_put_contents("1.txt", date("Y-m-d H:i:s")); ?>那时,我想得到哪个php -f test.php的pid.当我启动index.php时,我可以在tasklist命令行的输出中看到新的php.exe进程.我怎样才能获得这个后台进程的pid. 谢谢.解决方法:...

如何使用PHP运行Linux后台进程?试过系统(“sudo -u me mplayer /tmp/audio.wav”)但没有工作【代码】

当我执行以下无效时(使用ps aux | grep mplayer检查,其中1.wav是一个10分钟的音频文件):system("mplayer /tmp/1.wav"); // failed system("sudo -u myusername mplayer /tmp/1.wav"); // failed system("mplayer /tmp/1.wav &"); // failed system("(mplayer /tmp/demo.wav) >/dev/null &"); //failed according to: http://www.php.net/manual/fr/function.system.php#88543 system("sudo -u myusername -i mplayer /tmp/demo.wa...

PHP进程ID和唯一【代码】

我想在后台运行php脚本并将其PID存储在数据库中.这样我就可以检查特定脚本是否正在运行(稍后). 我们可以使用getmypid来获取当前的PID. 但是根据PHP手册Process IDs are not unique, thus they are a weak entropy source. Werecommend against relying on pids in security-dependent contexts.……我不能依赖PID. 我的第二个想法是将进程创建时间存储到数据库中. 如何获取当前脚本创建的时间?以后如何与tasklist进行比较以检查特...

php – bitcoind守护进程和createrawtransaction参数【代码】

我一直在测试/学习Bitcoind守护进程的rpc接口,并成功使用php库到现在为止. 我正在尝试创建一个新的原始事务,我在互联网上有很多例子,但我不知道函数的params应该来自哪里. 例如:$bitcoin = new Bitcoin('myuser','mypwd','127.0.0.1','8332');$bitcoin->createrawtransaction(array(array("txid"=>"aed23bb3ec7e93d69450d7e5ea49d52fcfbef9d380108f2be8fe14ef705fcea5", /where this string comes from or how i have to generate...

放弃PHP中的长进程(但让它们完成)【代码】

我有一个HTML表单,提交到启动脚本的PHP页面.该脚本可能需要3秒到30秒才能运行 – 用户无需四处寻找此脚本即可完成. 是否有可能启动一个PHP脚本,立即打印“谢谢”给用户(或其他什么),并让他们在你的脚本继续工作时继续他们的快乐方式? 在我的特定情况下,我将表单数据发送到php脚本,然后将数据发布到许多其他位置.等待所有帖子成功,目前不符合我的利益.我只想让脚本运行,允许用户去做他们喜欢的任何事情,就是这样.解决方法:例如,将您...

php – 我可以启动一个脚本,因此它独立于Linux上的父进程吗?【代码】

有没有办法从另一个进程启动脚本,以便如果进程死亡/结束,脚本仍然继续? setuid会这样做吗?如果我要将所有者设置为root,然后启动脚本? 例如,如果我有一些PHP代码启动脚本,但httpd死亡或被杀死,我认为它需要我的脚本.有没有解决的办法? 具体来说,我使用的是Apache 2和PHP 5的Fedora 10.解决方法:从here开始:function become_daemon() {$child = pcntl_fork();if($child) {exit; // kill parent}posix_setsid(); // become sess...

php – 臭名昭着的Apache错误“父:子进程退出状态为3221225477”【代码】

我已经阅读了一些与臭名昭着的Apache错误相关的问题和回答Apache error [notice] Parent: child process exited with status 3221225477 — Restarting但到目前为止没有什么可以帮助我.我问你的是,如果我使用Linux版本,脚本是否会因为同样的原因而崩溃Apache? 顺便说一句,如果有人对我的案例有任何建议,那么就是Apache的error.log[Mon Aug 08 14:31:44 2011] [notice] Parent: child process exited with status 3221225477 -- Re...

将PHP进程作为守护进程运行,同时从后台安全地将其杀死【代码】

我们正在运行一个PHP守护进程,它会查看队列,接收工作程序作业并生成工作程序来处理它.在继续之前,工人自己获得对特定位置的锁定. 我们将守护进程产生为nohup后台进程. 这整个架构似乎都有效,除非我们因为某种原因必须杀死进程.如果我们使用-9杀死它们,则无法将其捕获到工作进程中并在死亡之前释放锁定. 如果我们使用小于-9的任何东西(如TERM或HUP),那么守护进程或工作进程似乎都没有收到它. 有没有人以更好的方式解决这个问题? (p...

如何使用PHP获取在服务器上运行的PHP进程列表【代码】

我有一个运行PHP文件的cronjob,它运行用PHP编写的DAEMON,但我只想运行DAEMON,如果没有其他实例正在运行,我怎样才能获得运行的PHP进程列表,以便找到我的DAEMON正在运行.我想到了某种类型的exec,它会生成一个我可以存储在数组中的列表.有任何想法吗?谢谢解决方法:要获取PHP进程列表,请参阅以下问题: How to get list of running php scripts using PHP exec()? 另一个选择是你可以获取文件锁,然后在运行之前检查它:例如:$thisfil...