/** * The method to run after a Job is finished. */ public function tearDown() { //Verificar si existen argumentos if (!empty($this->args)) { //Establecer variables self::$datetime = $this->args["datetime"]; self::$quequename = $this->args["quequename"]; self::$jobclassname = $this->args["jobclassname"]; self::$id_configuracion_reporte = $this->args["idNotificacionReporte"]; } //DB Conection self::$db = new Database(); self::$db->connect(); ///Fecha y Hora Actual //$current_datetime = new DateTime(date('Y-m-d H:i:s'), new DateTimeZone('America/Panama')) $current_datetime = date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s'))); //Calcular nueva fecha para programar la tarea //Sumarle 7 dias a la fecha de Ejecucion //self::$datetime = date('Y-m-d H:i:s', strtotime($current_datetime. ' + 7 days')); self::$datetime = date('Y-m-d H:i:s', strtotime($current_datetime . '+20 minute')); //Actualizar fecha ultima fecha de ejecucion de la tarea //y fecha de proxima ejcucion $fields = array("ultimo_tiempo_ejecucion" => $current_datetime, "proximo_tiempo_ejecucion" => self::$datetime); self::$db->update('configuracion_notificaciones_reportes', $fields, 'id="' . $this->args["idNotificacionReporte"] . '"'); $result = self::$db->getResult(); //print echo "Proxima Fecha de Ejecucion: " . self::$datetime . PHP_EOL; $horas = strtotime(self::$datetime) - strtotime($current_datetime); //Agendar nuevamente el job ResqueScheduler::enqueueIn($horas, self::$quequename, self::$jobclassname, ['datetime' => self::$datetime, 'quequename' => self::$quequename, 'jobclassname' => self::$jobclassname, 'idNotificacionReporte' => "" . $this->args["idNotificacionReporte"] . ""]); //print echo "Proxima Fecha en Horas: " . $horas . PHP_EOL; Resque_Event::listen('afterPerform', function () { //echo "Se envio el correo :)) "; }); Resque_Event::listen('onFailure', function () { echo "Algo paso :-| ...."; }); }