Árbol de páginas

Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

Versión 1 Actual »

La persistencia será almacenada en una base de datos relacional. Se hará uso de PostgreSQL para su despliegue y su objetivo principal es dotar de robustez al sistema ante posibles caídas así como almacenar información útil de logs y procesos.

La siguiente ilustración es la implementación del esquema actual de la base de datos de PostgreSQL.

Log
AtributoTipoDescripción

id

intIdentificador del log
id_scheduleintIdentificador de la planificación de ejecución
id_processintIdentificador del proceso (extraer convocatoria, base reguladora...)
id_robotintIdentificador del robot que ha creado el log
log_file_pathstringruta donde se encuentra el fichero del log
datastringInformación que se extrae del proceso realizado
start_timetimestampCuando empezó la ejecución
end_timetimestmapCuando terminó la ejecución
statestringEstado de la ejecución (OK, ERROR...)
finishedbooleanHa finalizado la ejecución (True o False)
completedint0-100, numero para la monitorización del proceso


Process
AtributoTipoDescripción
idintIdentificador del proceso
classstringNombre de la clase del proceso, para poder ser invocado
namestringNombre del proceso
requirementsstringLibrerías necesarias para la ejecución
descriptionstringDescripción del proceso


Schedule
AtributoTipoDescripción
idintIdentificador de la planificación de ejecución
id_robotintRobot que ha realizado o realizará esa ejecución
schedule_jsonstringJSON con la estructura de lanzamiento ()
activebooleanLa planificación de ejecución sigue activa (true, false), para procesos que queramos planificar cada día
next_runtimestampTimestamp de la siguiente ejecución


Robot
AtributoTipoDescripción
idintIdentificador del robot
namestringNombre del robot
ip_addressstringDirección ip del robot
addressstringDonde se encuentra el robot
macstringDirección MAC del robot
python_versionstringVersión de python del robot
osstringSistema operativo del robot
featuresstringLibrerías instaladas del robot
connectedbooleanConectado (True o false)
last_seentimestampÚltima vez visto
createdtimestampTimestamp de cuando se creó ese robot

A continuación, se muestra un ejemplo de información que estaría almacenada en la base de datos.

Tabla Process
{
   "process":[
      {
         "id":1,
         "class":"ProcessBoletines",
         "name":"Proceso Boletines",
         "requirements":"",
         "description":"Proceso que Segmenta y Crea boletines para la ayuda a la transferencia de investigación"
      }
   ]
} 
Tabla Log
{
   "log":[
      {
         "id":1,
         "id_schedule":1,
         "id_process":1,
         "id_robot":"robot1",
         "log_file_path":"08-09-2021-13:28:37ProcessBoletines.log",
         "data":"Información sobre la ejecución del proceso""start_time":"2021-12-08T11:28:38.727Z",
         "end_time":"2021-12-08T11:28:48.862Z",
         "state":"OK",
         "finished":true,
         "completed":100
      }
   ]
}


Tabla Schedule
{
   "schedule":[
      {
         "id":1,
         "id_robot":" robot1",
         "schedule_json":"Parametros del proceso a ejecutar",
         "active":false,
         "created":"2021-12-08T11:28:38.727Z",
         "next_run":null
      }
   ]
}


Tabla Robot
{
   "robot":[
      {
         "id":"robotWindows",
         "name":"Robot Windows",
         "ip_address":"10.208.3.112",
         "address":"Universidad de Murcia",
         "registrations":"ATICA",
         "mac":"8d:a0:4f:4d:d1:8e",
         "python_version":"3.8.5 (default, Sep 4 2020, 07:30:14) \n[GCC 7.3.0]",
         "os":"Linux",
         "features":"aiormq,aio-pika,absl-py",
         "connected":"2021-11-09T12:43:36.471Z",
         "last_seen":"2021-11-09T12:47:40.679Z",
         "created":"2021-10-14T11:27:30.418Z"
      }
   ]
}

Toda la información contenida en la persistencia podrá ser consultada mediante una API.



  • Sin etiquetas