require_once 'Zend/Loader/Autoloader.php';
//include file Autoload for Fpt framwork
require_once 'Fpt/Autoloader.php';
//getInstance Autoload
$Autoloader = Zend_Loader_Autoloader::getInstance();
//set default Autoload to Fpt framework
$Autoloader->setDefaultAutoloader(array(new Fpt_Autoloader(), 'loadClass'));
//regis name space for thethao
$Autoloader->registerNamespace('Thethao_')->registerNamespace('Fpt_')->registerNamespace('Job_');
//get application conf
$arrConfig = Thethao_Global::getConfig('job');
$application = new Application($arrConfig);
Zend_Controller_Front::getInstance()->setParam('bootstrap', $application);
unset($application);
$arrJobConf = $arrConfig['job'][ZONE_ENV]['sport'];
$objWorker = new Fpt_Job_Worker_Adapter_Gearman($arrJobConf);
//Add function to worker
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_cache_match'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_cache_relatedmatch'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_bxh_match'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_match_betrate'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_player_champion'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_player_cache'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_team_cache'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['delete_match'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_olympicranking_cache'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_tennis_ranking_cache'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_tennis_schedule_cache'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['background_crawler'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['rewrite_keybox'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['thethao_updatequestion'], 'function_reduce');
//set default Autoload to Fpt framework
$Autoloader->setDefaultAutoloader(array(new Fpt_Autoloader(), 'loadClass'));
//regis name space for giaitri
$Autoloader->registerNamespace('Thethao_')->registerNamespace('Fpt_')->registerNamespace('Job_');
//get application conf
$arrConfig = Thethao_Global::getConfig('job');
$application = new Application($arrConfig);
Zend_Controller_Front::getInstance()->setParam('bootstrap', $application);
unset($application);
//get job hn
$arrJobConf = $arrConfig['job']['hn']['sport'];
//get job hcm
$arrHCMJobConf = $arrConfig['job']['hcm']['sport'];
//merge config server
$arrJobConf['servers'] = array_merge($arrJobConf['servers'], $arrHCMJobConf['servers']);
$objWorker = new Fpt_Job_Worker_Adapter_Gearman($arrJobConf);
//Map function register den function thuc hien worker
//framework add, edit, delete article and update category
$objWorker->addFunction($arrConfig['job']['task']['sport']['add_article'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['edit_article'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['delete_article'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['set_hot_article'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['edit_cate'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['update_hot_by_cate'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['clear_cache_match'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['clear_cache_ranking'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['clear_cache_top_player'], 'function_reduce');
$objWorker->addFunction($arrConfig['job']['task']['sport']['update_top_view'], 'function_reduce');
//Job Block update
$objWorker->addFunction($arrConfig['job']['task']['sport']['thethao_updateblock'], 'function_reduce');
//Thuc hien loop de run worker
//set default Autoload to Fpt framework
$Autoloader->setDefaultAutoloader(array(new Fpt_Autoloader(), 'loadClass'));
//regis name space for thethao
$Autoloader->registerNamespace('Thethao_')->registerNamespace('Fpt_')->registerNamespace('Job_');
//get application conf
$arrConfig = Thethao_Global::getConfig('application');
$application = new Application($arrConfig);
Zend_Controller_Front::getInstance()->setParam('bootstrap', $application);
unset($application);
//get job hn
$arrJobConf = $arrConfig['job']['hn']['sport'];
//get job hcm
$arrHCMJobConf = $arrConfig['job']['hcm']['sport'];
//merge config server
$arrJobConf['servers'] = array_merge($arrJobConf['servers'], $arrHCMJobConf['servers']);
$objWorker = new Fpt_Job_Worker_Adapter_Gearman($arrJobConf);
//job send mail in detail
$objWorker->addFunction($arrConfig['job']['task']['sport']['send_mail'], 'function_reduce');
//job predict in match detail
$objWorker->addFunction($arrConfig['job']['task']['sport']['match_predict'], 'function_reduce');
//job clear apc from framework
$objWorker->addFunction($arrConfig['job']['task']['sport']['clearapcfile'], 'function_reduce');
//loop de run worker
$objWorker->run();
function function_reduce($job)
{
    global $objWorker;
    $arrData = $objWorker->getNotifyData($job);
    //Get class
    $className = $arrData['class'];
    //Get function