CORN SAE

<?php


/**
 * corn.php  30秒钟阻塞
 */

ignore_user_abort(true);
$mmc=memcache_init();

isdead()||exit('running');///没死则退出
isrun(1);///进程排斥

dorealwork();//异步发起core-corn.php

sleep(29);
isrun(0);//其他进程可载入,标记已死
callback();//异步回调自身,回调的是自身肯定已死
exit('threadend');

//////////////////////下面可用的函数/////////////////////////

//判断是否在存活,是否小于60秒
function isdead()
{
	global $mmc;
	$last=memcache_get($mmc,'run');
    if(time()-$last<60) return false;
    else return true;


}
///存活同步,设置mem当前时间,设置mem为-60
function isrun($run=1)
{
	global $mmc;
    if($run)
    {
    	memcache_set($mmc,'run',time());

    }
    else
    {
    	memcache_set($mmc,'run',time()-60);
    }
}
//发起自身异步,递归
function callback()
{
	$url="http://suconghou.sinaapp.com/corn.php";//自身的位置
	async($url);
    isdead()&&callback();
}

///发起core-corn.php
function dorealwork()
{
	$url="http://suconghou.sinaapp.com/core-corn.php";///core-corn.php的位置
	async($url);
}



function async($url)
{
$ch = curl_init(); 
$curl_opt = array(CURLOPT_URL=>$url,CURLOPT_TIMEOUT=>1);
curl_setopt_array($ch, $curl_opt);
curl_exec($ch);
curl_close($ch);
}


你可能感兴趣的:(CORN SAE)