【biggerthanbiggerphplockphp进程锁v10beta1】教程文章相关的互联网学习教程文章

PHP多进程编程(三) 管道通信2

上一节介绍了管道基本概念和无名管道,这一节来看看有名管道。有名管道概述及相关API应用2.1 有名管道相关的关键概念管道应用的一个重大限制是它没有名字,因此,只能用于具有亲缘关系的进程间通信,在有名管道(named pipe或FIFO)提出后,该限制得到了克服。FIFO不同于管道之处在于它提供一个路径名与之关联,以FIFO的文件形式存在于文件系统中。这样,即使与FIFO的创建进程不存在亲缘关系的进程,只要可以访问该路径,就能够彼此...

PHP多进程系列笔记(包含原生多进程和Swoole)【代码】

PHP多进程系列笔记(一) 本系列文章将向大家讲解 pcntl_*系列函数,从而更深入的理解进程相关知识。 PCNTL在PHP中进程控制支持默认是关闭的。您需要使用 --enable-pcntl 配置选项重新编译PHP的 CGI或CLI版本以打开进程控制支持。 Note: 此扩展在 Windows 平台上不可用。pcntl_fork int pcntl_fork ( void ) 用于创建子进程。成功时,在父进程执行线程内返回产生的子进程的PID,在子进程执行线程内返回0。失败时,在父进程上下...

php进程 swoole【图】

<?php$pid = posix_getpid(); $ppid = posix_getppid(); var_dump($pid); cli_set_process_title("myparent");for($i = 1;$i<10;$i++){$child = new Swoole\Process(function(){cli_set_process_title("mychild");echo "child ".getmypid().PHP_EOL;sleep(10);});$child->start(); }while(true){sleep(1); } 如果不进行回收,会产生僵尸进程[root@localhost swoole]# php test.php int(31030) child 31031 child 31033 child 31...

php多进程编程【代码】

php多进程编程 PHP的进程控制支持实现了Unix方式的进程创建, 程序执行, 信号处理以及进程的中断。 进程控制不能被应用在Web服务器环境,当其被用于Web服务环境时可能会带来意外的结果。 ? pcntl函数pcntl_fork():在当前进程当前位置产生分支(子进程)。译注:fork是创建了一个子进程,父进程和子进程 都从fork的位置开始向下继续执行,不同的是父进程执行过程中,得到的fork返回值为子进程 号,而子进程得到的是0<?php $pid = pcn...

如何在PHP中运行后台进程并读取/写入其stdout / stdin?

作为对问题“ php execute a background process”的扩展: 假设我想让一个进程在PHP会话期间保持运行,例如交互式bash shell.如何建立stdout / stdin的重定向,以便PHP可以对进程进行读/写? 更新:关键是能够启动该进程并使它在后台运行,以便以后的请求可以访问其stdout / stdin流.解决方法:我将使用PHP Expect.文档中有一些非常好的usage examples.

PHP脚本作为Cron作业发送电子邮件,防止多个进程

我正在开发一个提醒应用程序,用户可以通过选择提醒的时间和日期向自己发送电子邮件. 因此,我将使用cron作业来发送将在每分钟后运行的电子邮件,并将检查是否有任何待发送的电子邮件. 现在,我的问题是,如果在任何给定时间我要发送50-100封电子邮件,那么我认为发送电子邮件可能需要1分钟以上的时间,因此另一个Cron作业将开始运行相同的脚本.那有什么问题吗?运行cron作业每分钟都会消耗服务器资源吗?如果是,那么实现相同功能的其他选...

PHP的一些分叉的进程保持运行【代码】

我有一个php脚本,它将任务分为多个部分,并在单独的子进程中运行每个部分.代码如下:foreach($users as $k => $arr) {if(($pid = pcntl_fork()) === -1) continue;if($pid) {pcntl_wait($status,WNOHANG);continue;}ob_start();posix_setsid();dbConnect();// do stuff to dataexit(); }我在Debian服务器上使用crontab运行此脚本,但是问题是某些进程保持运行并保留内存.一段时间后,服务器的内存被淹没.我需要找到一种方法来确保所有...

php脚本执行进程30分钟内不退出的话,就kill掉这些php的脚本进程【代码】

线上脚本内容如下:[root@localhost ~]# cat /data/scripts/check_php.sh #!/bin/bash Date=`date "+%Y-%m-%d %H:%M:%S"` Num=$(ps -ef|egrep "countjs_syc_site*|countjs_syc_plan*|countjs_syc.php|countjs_syc_img*|setcache*"|grep -v grep |wc -l) Pid=$(/bin/ps -ef|egrep "countjs_syc_site*|countjs_syc_plan*|countjs_syc.php|countjs_syc_img*|setcache*"|grep -v grep| awk '{print $2}')if [ $Num -eq 0 ];thenecho...

如何等待php中proc_open()执行的进程?【代码】

请阅读此问题后,不要说它已被复制.我已经在网上搜索过,但是没有一种解决方案适合我. 我在做什么:->我正在通过在本地主机上运行apache服务器通过php获取源文件(例如.c).我将该文件保存在“ / code /”目录中,并在php中使用proc_open()编译并执行此源文件.现在我想要等待主要的php脚本,直到“ proc_open()”创建的进程终止,所以我使用了“ pcntl_waitpid()”.但是我认为使用“ pcntl_waitpid()”存在问题,因为“ pcntl_waitpid()”之...

从服务器进程获取实时反馈[在PHP中]【代码】

需求: 我需要运行一个后台进程(根据用户请求),该过程大约需要30到60秒才能完成.我想给用户一些状态反馈.注意:Toly是正确的,不需要“背景”. 工作原理: 在此期间,该进程将打印约20条状态消息,我使用proc_open检索它们,并使用fgets在读取管道上进行侦听.我可以将这些消息保存到会话变量中,并使用时间戳(以帮助调试),我可以看到随着过程的进行,会话数组已被这些消息写入. 麻烦: 我的计划是使用ajax调用(每秒)轮询服务器,以检索这些...

php-Python子进程无法识别$PATH中的命令【代码】

我正在尝试调试一个突然停止工作的Sublime插件. 我在插件中有以下代码.proc = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, startupinfo=info, cwd=home) data = proc.communicate()[0]基本上,它正在执行一个文件,文件的顶部是#!/usr/bin/env php.当我运行命令时,我得到env:php:没有这样的文件或目录错误消息. 我通过使用绝对路径修复了它. 解决方案1:#!/usr/bin/env /A...

从php在服务器上运行prolog(或使其成为守护进程)【代码】

我正在学习Prolog,并且确实想了解它如何用于现实世界的Web应用程序.一切都可以在本地主机上完美运行,但是在使我的创作生效方面有些麻烦. 要在服务器上启动它,我遵循了本教程:http://www.j-paine.org/dobbs/prolog_from_php.html 通过对php进行一些更改,我可以使其生效.我的PHP代码:<html> <head> <title>Calling SWI-Prolog from PHP (short)</title> </head> <body> <? $cmd = "swipl -f /path/to/myfile.pl -g test,halt -t 'h...

我可以在PHP的多核LAMP机器上调用多个FFMPEG进程吗?【代码】

我正在使用PHP使用exec()调用FFMPEG命令.启动该命令的脚本从另一个PHP脚本使用调用proc_close(proc_open('php /phpdirectory/process.php &', array(), $foo));这很好. ffmpeg命令被调用并“在后台”运行,留下第一个脚本返回给用户,在这种情况下继续进行文件上传.如果我使用的是多核计算机怎么办?我将如何优化事物,以便可以为每个内核调用ffmpeg进程?还是多核机器进程会在内核之间分配工作,并更快地通过单个进程? 任何人?解决方...

有没有更好的方法可以让CPU使用PHP处理其他进程?【代码】

我有一些长期运行的CLI PHP脚本,这些脚本通过cron定期运行.我希望它们尽快完成,但又不会严重影响其他过程(例如Web服务器响应能力). 目前,我正在使用nice -n 19并且还尝试插入非常短的usleep()调用,例如在我的主循环中插入50微秒.但这并不总是像我在单核VM上那样快地实现.顺便说一句,我没有使RAM饱和,所以没有分页发生. 我已经读过usleep()是一个系统调用,如果没有必要,它比不需要我的系统调用更快地允许调度程序将优先级分配给其他...

PHP-比特币api不依赖于正在运行的比特币守护进程?

我正在尝试建立一个以比特币为中心的网站,由于主机的限制,我需要能够在没有任何比特币守护程序在任何服务器上运行的情况下执行以下操作: >创建一个新的比特币地址(getnewaddress($account))>在该地址接收硬币;确定收到多少(getreceivedbyaccount($account,$minconf = 1))>将硬币发送到地址(sendfrom($fromaccount,$tobitcoinaddress,$amount,$minconf = 1,$comment =“”,$comment-to =“”)) 这些都是现有的json-rpc php客户端中...

BETA - 相关标签