最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php獲取后臺Job管理的實現(xiàn)代碼

 更新時間:2011年06月10日 00:31:16   作者:  
從數(shù)據(jù)庫中取出job 隊列 創(chuàng)建新的進(jìn)程進(jìn)行執(zhí)行 等待job 結(jié)束
復(fù)制代碼 代碼如下:

<?php defined('SYSPATH') OR die('No direct access allowed.');
class Controller_Jobs extends Controller_Base{
public function before(){
parent::before();
if(Request::$protocol != "cli"){
die("Only cli allowed!\n");
}
}
public function after(){
parent::after();
//do some cleaning tasks
}
private function _execJobCommand($joburi,$paras){
$php_exec = Kohana::config("picsou.php_exec");
$php_index = APPINDEX;
$command_args = array();
$command_args[] = $php_index;
$command_args[] = "--uri=".$joburi;
foreach ($paras as $para => $value){
$command_args[] = "--".$para."=".$value;
}
//var_dump($command_args);exit;
echo "exec commmand:".$php_exec."\n";
pcntl_exec($php_exec,$command_args);
}
/*
* Running jobs in queues
*/
public function action_run(){
$requestCount = 0;
while(true){
$sql = "select * from job_queue where status='1' and approved='1' order by id";
$jobs = DB::query(Database::SELECT,$sql)->execute()->as_array();
if($jobs){
foreach ($jobs as $job){
$requestCount ++;
//update the jobs status as running
DB::update('job_queue')->set(array('status'=>'2'))
->where('id','=',$job['id'])->execute();
$job_pid = pcntl_fork();
if($job_pid == -1){
die("Could not fork Child");
} else if($job_pid == 0 ){
$this->_execJobCommand($job['job_uri'],json_decode($job['paras'],true));
echo "finish Child\n";
exit(0);
//run jobs here
} else{
echo "Waiting for job\n";
ob_flush();
$child_pid = pcntl_waitpid($job_pid,$status, WUNTRACED);
echo "waitpid end:".$status."\n";
if($status == 0){
//job completed
DB::update('job_queue')->set(array('status'=>'999'))
->where('id','=',$job['id'])->execute();
echo "Child Finished\n";
ob_flush();
}else{
DB::update('job_queue')->set(array('status'=>'-1'))
->where('id','=',$job['id'])->execute();
echo "Child Failed\n";
ob_flush();
}
}
}
}
else{
if($requestCount >=10){
echo "Have a rest, I have processed 10 jobs\n";
exit;
}
//no job to run
//echo "No job\n";
ob_flush();
sleep(5);
}
}
}
}

相關(guān)文章

  • PHP cron中的批處理

    PHP cron中的批處理

    如果 Web 應(yīng)用程序中的一個特性需要超過 1 秒或 2 秒才能完成,那么應(yīng)該怎么辦?需要某種離線處理解決方案。學(xué)習(xí)幾種對 PHP 應(yīng)用程序中長時間運行的作業(yè)進(jìn)行離線服務(wù)的方法。
    2008-09-09
  • 初識php MVC

    初識php MVC

    MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。
    2014-09-09
  • PHP使用XMLWriter讀寫xml文件操作詳解

    PHP使用XMLWriter讀寫xml文件操作詳解

    這篇文章主要介紹了PHP使用XMLWriter讀寫xml文件操作,結(jié)合實例形式分析了php基于XMLWriter針對xml文件進(jìn)行讀寫操作相關(guān)實現(xiàn)技巧,并附帶相關(guān)源碼供讀者下載參考,需要的朋友可以參考下
    2018-07-07
  • PHP的instanceof詳解及使用方法介紹

    PHP的instanceof詳解及使用方法介紹

    php的instanceof是什么意思?instanceof由兩個單詞組成,instance和of,instance表示實例的意思,從字面上就可以理解這是實例引用的意思。instanceof?運算符是?PHP?5?引進(jìn)的。在此之前用?is_a(),但是?is_a()?已經(jīng)過時了,最好用?instanceof。
    2023-05-05
  • 抓取YAHOO股票報價的類

    抓取YAHOO股票報價的類

    實時抓取YAHOO股票報價的函數(shù),大家可以學(xué)習(xí)一下思路跟具體的代碼,自己可以拓寬下。
    2009-05-05
  • PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解決方法

    PHP提示Deprecated: mysql_connect(): The mysql extension is dep

    這篇文章主要介紹了PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解決方法,是在進(jìn)行PHP數(shù)據(jù)庫程序開發(fā)中常會遇到的錯誤,需要的朋友可以參考下
    2014-08-08
  • mysql 的 like 問題,超強畢殺記!?。? src=

    mysql 的 like 問題,超強畢殺記?。?!

    mysql 的 like 問題,超強畢殺記?。。?..
    2007-01-01
  • PHP數(shù)組Key強制類型轉(zhuǎn)換實現(xiàn)原理解析

    PHP數(shù)組Key強制類型轉(zhuǎn)換實現(xiàn)原理解析

    這篇文章主要介紹了PHP數(shù)組Key強制類型轉(zhuǎn)換實現(xiàn)原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • php讀取文件內(nèi)容的幾種方法詳解

    php讀取文件內(nèi)容的幾種方法詳解

    本篇文章是對php中讀取文件內(nèi)容的幾種方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 判斷PHP數(shù)組是否為空的代碼

    判斷PHP數(shù)組是否為空的代碼

    這兩種方法足以應(yīng)對簡單數(shù)組和多維數(shù)組是否為空的判斷問題,個人一般用empty()來做數(shù)組非空判斷,這樣感覺代碼看起來更容易理解。
    2011-09-09

最新評論

澄江县| 普兰店市| 金阳县| 原阳县| 博爱县| 潍坊市| 赫章县| 社旗县| 鄱阳县| 肃南| 松滋市| 张家口市| 射洪县| 正蓝旗| 德格县| 怀安县| 仪陇县| 汶川县| 望奎县| 定陶县| 台安县| 高密市| 册亨县| 玉树县| 灯塔市| 新丰县| 澄城县| 林州市| 嘉义县| 朔州市| 静乐县| 宁武县| 东丽区| 大埔县| 东安县| 安徽省| 乌苏市| 酒泉市| 黄龙县| 永平县| 大邑县|