Package: datawork
DataworkEste módulo es una implementación específica deTasktools.Schedulerpara
procesar los datos recibidos desde estaciones GNSS y almacenados en una databaseRetrhinkdb.El propósito deDataworkes realizar el trabajo pesado con la información
nueva que se ha recibido. En primer caso será obtener las diferencias de
posición segúnECEF. Luego será direccionar la información calculada a
diversos canales:geojsonearlybirdstatusInstalaciónPara instalarDataworkserá necesario tener instaladoPython v3.7o
superior. Crear un ambiente virtual.pipinstalldataworkO bien, clonando del repositorio e instalando:gitclonehttps://gitlab.com/pineiden/datawork.gitcddatawork
pythonsetup.pyinstall¿Cómo opera?Al iniciar recupera la lista de estaciones y su metadata mediante una conexíón
socket alCollector.El TaskAssignator toma la lista y activa las tareas que están a la espera en elScheduler, al activarse comienza a operar un loop con tres elementos
principales:Objecto rethinkdb para fuenteObjeto rethinkdb para destino ENUProcesador de informaciónTambién, de forma paralela, permanecen en operación:Entrega a distintas colas RabbitMQ de la información procesadaCliente socket conectado a CollectorServidor socket a la escucha de conexiones.En operación el sistema rescata desde el momento anterior hasta el presente la
lista de nuevos elementos en la tabla correspondiente a la estación. Si se
obtiene una lista no vacía se procede a transformar y envíar a los diferentes destinos.Comando 'Datawork'Se dispone de un comandoDataworkpara activar el proceso, para casos
particulares revisar la ayuda.datawork--help¿Qué poner como parámetros de ambiente virtual?#!/bin/bash# This hook is sourced after this virtualenv is activated.exportCOLLECTOR_DBUSER='dbuser'exportCOLLECTOR_DBPASS='epdasdasd'exportCOLLECTOR_DBNAME='dbname'exportCOLLECTOR_DBHOST='localhost'exportCOLLECTOR_PORT=2345# SETTINGS Collector LOCALexportCOLLECTOR_EST_X_PROC=3exportCOLLECTOR_TSLEEP=1exportCOLLECTOR_WORKERS=6exportGSOF_TIMEOUT=8exportCLL_STATUS="ALL"exportCLL_GROUP='["QSCO"]'#DataworkexportDATAWORK_EST_X_PROC=8exportDATAWORK_TSLEEP=2exportDATAWORK_WORKERS=12exportGSOF_TIMEOUT=2exportDW_STATUS="ALL"# OPTIONS: "GROUP" "ALL"exportDW_GROUP='["QSCO"]'exportDW_DIR="/home/datawork/datawork_system/datawork/datawork"exportGUI_WORKERS=10exportGUI_STATIONS_BY_WORKER=12exportSELECT_GROUP=4aliasdbus_coords="dbus-monitor type=signal interface=\"csn.coord.interface\""#export COLLECTOR_SOCKET_IP="10.54.217.15"exportCOLLECTOR_SOCKET_IP='atlas.csn.uchile.cl'exportCOLLECTOR_SOCKET_PORT=6677#export RDB_SOURCE='atlas.csn.uchile.cl'exportRDB_SOURCE='atlas.csn.uchile.cl'exportRDB_ENU='10.54.218.66'#export DATAWORK_SOCKET_IP="10.54.218.66"exportDATAWORK_SOCKET_IP="localhost"exportDATAWORK_SOCKET_PORT=6666exportMQ_HOST="10.54.217.95"# Es la dirección ip on url del host dónde se ubica el servicio#export MQ_NAME="enugeojson_prod"# Es el nombre de usuario que accede a la cola#export MQ_PASS="pwd"# Es el la password asociada#export MQ_VHOST="gpsdata"# Es el nombre del host virtual de la cola#export MQ_CODE="geo_enu_data"# Es el nombre en código de la cola#export MQ_QUEUE_NAME="gpsstream"echo"Loading Rabbit MQ data"exportMQ_HOST="10.54.217.95"# Es la dirección ip on url del host dónde se ubica el servicioexportMQ_NAME="enugeojson_prod"# Es el nombre de usuario que accede a la colaexportMQ_PASS="pwd"# Es el la password asociadaexportMQ_VHOST="gpsdata"# Es el nombre del host virtual de la colaexportMQ_CODE="geo_enu"exportMQ_QUEUE_NAME="gpss"