一目了然查看演示版地址:PHP如何在后台执行
后台执行,即cli模式。
进入php安装目录找到php.exe文件,但是在命令行执行。 具体方法查看指南或者google:phpcli模式。
但对于你提到的需求,是否使用cli模式并不重要。 虽然这只是一个异步请求。
您提到的A脚本在执行过程中将数据传输到B脚本。 虽然可以使用http合约,但是可以使用POST或者GET参数来达到数据传输的目的。
5楼给你的函数当然是放在A脚本中通过HTTP合约请求B脚本的函数。 您可以直接在B文件中使用$HTTP_GET_VARS或$HTTP_POST_VARS来获取A脚本传递的数据。
您还可以使用CURL库来实现这些模拟的http请求。
PHP后台线程如何监控数据库?
提供一个很有趣的想法监控php,不要使用cron来实现这个功能比如你的脚本url是[*]php[*]1。 消除脚本的运行时间[*]2。 运行处理代码[*]3.sleep30min[ *] 4. fsocketopen() 5. exit
PHP程序,如何监控显存
看到有人写了Perspective中php监控的示意图,分享给大家。 恐怕你们都做同样的事情。
PHP操作支持的ZendEngine在设计过程中就已经预留了丰富的Hook,可以有效干预处理过程中的几个关键步骤。 借助以下Hooks可以方便的获取数据:
1.zend_compile_filezend_compile_string
加载分析文件或者字符串会造成特别大的IO。 如果进行过多的加载,无疑会造成显存和CPU的消耗。 通过这两个钩子,可以获取文件名、执行行数、使用显存和CPU占用时间。
2. Zend_execute Zend_execute_internal
通过这两个钩子的使用,我们可以准确地分析PHP应用程序中的类调用、方法调用、方法参数、内存使用情况和CPU使用情况。 运行堆栈、API调用地址、SQL语句、CacheKey、Cache命中等关键信息。
3.zend_throw_exception_hook
借助异常钩子,可以准确获取应用系统运行过程中发生的异常信息,其中实际上包括发生异常的类方法的位置、参数、异常代码和异常消息。
4. zend_error_cb
错误钩子更加直接,可以准确获取系统运行过程中出现的任何警告、代码错误或语句错误。
如何在php中实现实时监控文件。
只需在服务器端构建一个根据需要循环的 PHP 脚本即可。
你猜,你的第二个问题,你是否要检查以防止这个脚本被重复触发。
事实上,不建议通过用户操作来触发此脚本,无论是服务器端代码,还是客户端异步Ajax。
如果你想使用PHP脚本进行持续循环监控,请联系运维人员,服务器启动,即脚本在服务器端开始运行,他们会给你提供解决方案。
真正的建议是,如果可能的话,不要使用 PHP 脚本通过循环代码进行服务器端监控。
不得不承认PHP在这方面的稳定性还是很差。 Java显然可以做到这一点,而PHP就更郁闷了。
比较可能的办法是请运维人员帮忙,汇报一下监控逻辑,然后让他安装各种触发条件来调用相应的PHP代码。
如果您坚持使用PHP脚本进行相关工作,有两个建议给您:
尽快释放资源,无论脚本使用了什么资源,包括文件、内存、数据库等,都应该尽快释放。 这些地方绝对不能偷懒,否则就会被滥用。
该脚本中进行独立的手动日志输出,任何一层循环的入口都要记录下来,这样监控失败时才有办法找到问题所在。
thinkphp中如何实现后台执行任务
ThinkPHP实现定时任务的两种方式
1.方法一:v3.2.1
①、ThinkPHP/Library/Behavior/CronRunBehavior.class.php文件
这里首先要说的是手动任务执行文件。 官方文件有一个bug。 我使用的是v3.2.1版本。 如果之前的版本已经修正了,你可以尝试一下。
[php]视图平原
/**
*==============================================
*由伟邦科技创建。
*作者:志华_W
*日期:2016/9/220005
*时间:晚上11点12分
*项目:ThinkPHP实现定时执行任务
*Power:手动执行任务
*==============================================
*/
命名空间行为;
类CronRunBehavior
公共函数运行($参数)
如果(C('CRON_CONFIG_ON')){
$this-checkTime();
私有函数checkTime()
如果(F('CRON_CONFIG')){
$crons=F('CRON_CONFIG');
}elseif(C('CRON_CONFIG')){
$crons=C('CRON_CONFIG');
if(!empty($crons)is_array($crons)){
$更新=假;
$log=数组();
foreach($cronsas $key=$cron){
if(空($cron[2])||$_SERVER['REQUEST_TIME']$cron[2]){
G('cronStart');
R($cron[0]);
G('cronEnd');
$_useTime=G('cronStart','cronEnd',6);
$cron[2]=$_SERVER['REQUEST_TIME']+$cron[1];
$crons[$key]=$cron;
$log[]='Cron:'.$key.'Runat'.date('Ym-dH:i:s').'Use'.$_useTime.'s'."rn";
$更新=真;
如果($更新){
ThinkLog::write(implode('',$log));
F('CRON_CONFIG', $crons);
这段代码已经修补了该bug,您可以将其复制到“ThinkPHP/Library/Behavior/CronRunBehavior.class.php”文件中保存。
②、tgs.php
在Application/Common/Conf文件夹中创建tags.php文件来设置标签。
[php]视图平原
返回数组(
//'配置项'='配置值'
'app_begin'=array('BehaviorCronRunBehavior'),
);
③、配置.php
手动运行配置在 Application/Common/Conf 文件夹中的 config.php 文件中完成。
[php]视图平原
返回数组(
/*手动运行配置*/
'CRON_CONFIG_ON'=true,//是否启用手动操作
'CRON_CONFIG' = 数组(
'测试执行定时任务'=array('Home/Index/crons','5',''),//路径(格式与R相同),间隔秒数(0仍在运行),指定一个开始时间
),
);
④、IndexController.class.php
编译Application/Home/Controller/IndexController.class.php文件中的定时执行任务。
[php]视图平原
/**
*==============================================
*由伟邦科技创建。
*作者:志华_W
*日期:2016/9/220005
*时间:晚上11点20分
*项目:ThinkPHP实现定时执行任务
*电源:手动任务执行模式控制器
*==============================================
*/
命名空间HomeController;
使用ThinkController;
类索引控制器扩展控制器
/*
公共函数索引(){
$this-show('styletype="text/css"*{padding:0;margin:0;}div{padding:4px48px;}body{background:#fff;font-family:"谷歌雅黑";color: # 333;}h1{font-size:100px;font-weight:normal;margin-bottom:12px;}p{line-height:1.8em;font-size:36px}/styledivh1:)/h1p欢迎来到 bThinkPHP/ b! /p/divscripttype="text/javascript" src=""charset="UTF-8"/script','utf-8');
*/
公共函数索引()
$contents=file_get_contents("test.txt");
//每次访问该路径时,输出内容并检查内容的差异
var_dump($内容);
出口;
$this-assign("内容", $contents);
$这个显示();
//定时执行的方法
公共函数crons()
//将内容写入文件
file_put_contents("test.txt", date("Ym-dH:i:s")."执行计划任务!"."rnbr",FILE_APPEND);
这样我们就写好了定时执行任务。 我们每隔5秒访问任意一个项目的url,然后检查根目录下的test.txt文件,发现上述内容发生变化。
注意:当你更改间隔时间时,你会发现它并不生效。 这是因为需要删除Runtime/Data文件夹下的缓存文件,而间隔时间缓存存储在CRON_CONFIG.php文件中。
纯项目文件下载地址:欢迎下载,见谅。
2.方法二:v3.2.2
这种方法和技术一没有太大区别。
①、tags.php
在/Application/Common/Conf 目录中创建一个新的tags.php 文件。 (这个和技术是一样的)
[php]视图平原
返回数组(
//'配置项'='配置值'
'app_begin'=array('BehaviorCronRunBehavior'),
);
②、crons.php
在 /Application/Common/Conf 目录中创建一个新的 crons.php 文件。 (这个和技巧一有区别,注意区分。)
[php]视图平原
返回数组(
//myplan是我们计划定时执行的方式,2是间隔时间,nextruntime的最后执行时间
//该文件位于/Application/Cron/目录下
'cron'=数组('myplan',2,nextruntime),
);
③、myplan.php
在/Application/Common/目录下新建Cron文件夹,并在上面新建文件myplan.php。
[php]视图平原
echodate("Ym-dH:i:s")."执行计划任务!"."rnbr";
此时,我们可以访问项目的url,然后我们会发现在Application/Runtime/目录下生成了~crons.php文件。 文件内容如下:
[php]视图平原
返回数组(
'克朗'=
大批(
0='我的计划',
1=60,
2=1398160322,
),
);
然后就可以观察结果了!
PHP编写的后台如何监听浏览器请求,如何让浏览器访问一个地址,后台会有相应的处理?
呃,我不太明白你的意图,所以我就这样回答吧
通常我们访问一个页面时,会输入一个url
此时浏览器发送一个http请求,请求的内容实际上是一个页面
你所说的窃听浏览器请求,与其说是后台脚本在窃听,不如说是服务器在窃听(脚本运行在服务器上)。 是服务器监听端口并执行相应的脚本程序。
通常监控php,我们有两种方式让后台脚本运行。
1是直接访问脚本文件(或动态页面)
2是ajax请求(其实相当于再次运行这个动态页面,只是不让用户听到)
当浏览器访问一个地址时,如果该地址映射到了一个脚本页面,那么该脚本页面就已经开始执行了(也就是所谓的响应浏览器请求)。 其实前提是你的服务器配置了允许PHP脚本运行的环境,PHP脚本才能正常运行
至于监听到请求后如何处理,就看你的脚本页面是怎么写的,你的php文件里写了哪些功能,会执行什么功能
发表评论