Я написал демона, чтобы получить некоторые вещи из mysql и сделать некоторые завихряющиеся запросы на основе информации из mysql. так как я свободно говорю на php, я написал этот демон в php, используя System_Daemon из груши.
это отлично работает, но мне интересно, как лучше всего подключиться к mysql. Чувствуется странным создание нового соединения mysql каждые пару секунд, следует ли мне попробовать постоянное соединение? любой другой вход? сохранение потенциальной утечки памяти до минимума является сущностью …
очистил скрипт, прикрепленный ниже. удалил материал mysql на данный момент, используя фиктивный массив, чтобы сохранить это непредвзято:
#!/usr/bin/php -q <?php require_once "System/Daemon.php"; System_Daemon::setOption("appName", "smsq"); System_Daemon::start(); $runningOkay = true; while(!System_Daemon::isDying() && $runningOkay){ $runningOkay = true; if (!$runningOkay) { System_Daemon::err('smsq() produced an error, '. 'so this will be my last run'); } $messages = get_outgoing(); $messages = call_api($messages); #print_r($messages); System_Daemon::iterate(2); } System_Daemon::stop(); function get_outgoing(){ # get 10 rows from a mysql table # dummycode, this should come from mysql for($i=0;$i<5;$i++){ $message->msisdn = '070910507'.$i; $message->text = 'nr'.$i; $messages[] = $message; unset($message); } return $messages; } function call_api($messages=array()){ if(count($messages)<=0){ return false; }else{ foreach($messages as $message){ $message->curlhandle = curl_init(); curl_setopt($message->curlhandle,CURLOPT_URL,'http://yadayada.com/date.php?text='.$message->text); curl_setopt($message->curlhandle,CURLOPT_HEADER,0); curl_setopt($message->curlhandle,CURLOPT_RETURNTRANSFER,1); } $mh = curl_multi_init(); foreach($messages as $message){ curl_multi_add_handle($mh,$message->curlhandle); } $running = null; do{ curl_multi_exec($mh,$running); }while($running > 0); foreach($messages as $message){ $message->api_response = curl_multi_getcontent($message->curlhandle); curl_multi_remove_handle($mh,$message->curlhandle); unset($message->curlhandle); } curl_multi_close($mh); } return $messages; }