//Actualizo la base procesos
$sql = 'UPDATE yatta.procesos SET status = '. $status;
-
if (@$nota) {
$sql.= ', nota = '. $nota;
}
$sql.= ', notificar = '. $notificar;
}
$sql.= ' WHERE id = '. $id_proceso;
-
$res = $db->query($sql);
- // Si hay error lo devuelve.
if (DB::isError($res)) {
return $res;
}
- //@TODO Aca notificar
-// if (@$notificar) {
-// }
+ //NOTIFICO
+ if (@$notificar) {
+ $res = $db->query(
+ "SELECT p.descripcion AS descripcion, p.owner AS owner, ".
+ "p.destinos AS destinos ".
+ "FROM yatta.procesos AS p"/
+ "WHERE p.id = ". $id_proceso);
+ if (DB::isError($res)) {
+ return $res;
+ }
+ $res = $res->fetchRow(DB_FETCHMODE_ASSOC);
+ $dest = split (',', @$res['destinos']);
+ $to = $owner.'.gov.ar';
+ foreach ($dest as $d) {
+ $to = $to . ", $d.gov.ar";
+ }
+ $headers = "From: Intranet - YATTA <intranet@mecon.gov.ar>\r\n";
+ $subject = "Proceso finalizado";
+ $body = "El proceso:\n".
+ $res['descripcion'] .
+ "\nha finalizado. Puede verificar el estado de finalizacion\n".
+ "en el sistema YATTA dentro de la intranet.\n".
+ "\n\n\n".
+ "************************************************************\n".
+ "Este es un mensaje generado automaticamente por MECON_YATTA.\n".
+ "Por favor no responder a esta direccion de e-mail.\n".
+ "************************************************************\n";
+ mail($to, $subject, $body, $headers);
+ }
+
+ //COPIO EL ARCHIVO
+ if (@$archivo) {
+ $arch = basename ($archivo);
+ rename ($archivo, '/var/www/yatta_tacho/'.$arch);
+ }
//Actualizo los servidores
$SERVER =& new YATTA_Servidor;
'prioridad' => $this->prioridad,
'scheduling' => $this->scheduling,
'notificar' => $this->notificar,
+ 'resultado' => $this->resultado,
);
}
}
//Si hay un proceso lo lanzo {{{
if (@$proceso) {
+
+ yatta_log ('Hay un nuevo proceso. Se forkea');
$pid = pcntl_fork();
//FORK ERROR {{{
//FORK PADRE {{{
elseif ($pid) {
+ yatta_log ('Fork Padre.')
//Espero a que termine el proceso.
while (($wapid = pcntl_waitpid ($pid, $status, WNOHANG)) != $pid) {
if ($CONTROLADOR->abortar($db, $proceso['id'])) {
+ yatta_log ('Hay que abortar el proceso en ejecucion.');
posix_kill($pid, 15); //SIGTERM
$CONTROLADOR->terminarProceso($db, $proceso['id'],
$YATTA_SERVER['id'], 4);
//FORk HIJO {{{
else {
+ yatta_log ('Fork Hijo.')
require_once $proceso['script'];
if (function_exists('create_process')) {
$SCRIPT =& create_process();
+ yatta_log ('Se instancio el proceso. Se ejecuta el metodo run.');
$SCRIPT->run();
}
else {
$CONROLADOR->terminarProceso($db, $proceso['id'],
$YATTA_SERVER['id'], $estado, @$SCRIPT->error,
@$SCRIPT->archivo, @$SCRIPT->notificar);
+ yatta_log ('Finalizo el proceso.')
}
//}}}
//No hay proceso {{{
else {
- yatta_log('No hay procesos asignados a este servidor.');
+ yatta_log ('No hay procesos asignados a este servidor.');
sleep(60);
}
//}}}
//}}}
//CIERRO EL ARCHIVO DE LOG {{{
+yatta_log ('*************** Finaliza Ejecución ***************');
fclose ($FH);
//}}}
?>
\ No newline at end of file
--- /dev/null
+#!/usr/bin/php4 -qC
+<?php
+
+touch('/tmp/yatta_rename');
+
+rename ('/tmp/yatta_rename',
+ '/home/mmarrese/public_html/yatta/test/yatta_rename');
+
+?>