예제 #1
0
 private function _createPheanstalk()
 {
     $pheanstalk = new Pheanstalk(self::SERVER_HOST);
     $tube = preg_replace('#[^a-z]#', '', strtolower(__CLASS__));
     $pheanstalk->useTube($tube)->watch($tube)->ignore('default');
     try {
         while ($pheanstalk->delete($pheanstalk->peekDelayed())) {
         }
     } catch (Pheanstalk_Exception_ServerException $e) {
     }
     try {
         while ($pheanstalk->delete($pheanstalk->peekReady())) {
         }
     } catch (Pheanstalk_Exception_ServerException $e) {
     }
     return $pheanstalk;
 }
예제 #2
0
                    debug("Error con " . $fid . ": " . $resav[1]);
                    $exito = ws($fid, 'ERROR', $resav[1]);
                    $pheanstalk->bury($job);
                } elseif ($resav[0] == 1) {
                    // Infectado
                    debug("Fichero " . $fid . " infectado: " . $resav[1]);
                    $exito = ws($fid, 'INFECTADO', $resav[1]);
                } else {
                    // Limpio
                    debug("Fichero " . $fid . " limpio ");
                    $exito = ws($fid, 'LIMPIO', '');
                }
            }
            // Liberamos... o esperamos
            if ($exito === TRUE) {
                $pheanstalk->delete($job);
            } else {
                $pheanstalk->release($job);
                debug("No funcionó bien " . $job->getData() . ".  Esperando.");
                sleep(10);
            }
        }
    }
} catch (Exception $e) {
    echo "Error!: " . var_export($e, TRUE) . "\n";
    exit(1);
}
/**
 * Llamada al servicio web para establecer el estado de un fichero
 */
function ws($fid, $estado, $extra)