Skip to main content

Datawork

Este módulo es una implementación específica de Tasktools.Scheduler para procesar los datos recibidos desde estaciones GNSS y almacenados en una database Retrhinkdb.

El propósito de Datawork es realizar el trabajo pesado con la información nueva que se ha recibido. En primer caso será obtener las diferencias de posición según ECEF. Luego será direccionar la información calculada a diversos canales:

  • geojson
  • earlybird
  • status

Instalación

Para instalar Datawork será necesario tener instalado Python v3.7 o superior. Crear un ambiente virtual.

pip install datawork

O bien, clonando del repositorio e instalando:

git clone https://gitlab.com/pineiden/datawork.git
cd datawork
python setup.py install

¿Cómo opera?

Al iniciar recupera la lista de estaciones y su metadata mediante una conexíón socket al Collector.

El TaskAssignator toma la lista y activa las tareas que están a la espera en el Scheduler, al activarse comienza a operar un loop con tres elementos principales:

  • Objecto rethinkdb para fuente
  • Objeto rethinkdb para destino ENU
  • Procesador de información

También, de forma paralela, permanecen en operación:

  • Entrega a distintas colas RabbitMQ de la información procesada
  • Cliente socket conectado a Collector
  • Servidor 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 comando Datawork para 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.                                                                                                                                                      
export COLLECTOR_DBUSER='dbuser'
export COLLECTOR_DBPASS='epdasdasd'
export COLLECTOR_DBNAME='dbname'
export COLLECTOR_DBHOST='localhost'
export COLLECTOR_PORT=2345

# SETTINGS Collector LOCAL                                                                                                                                                                                      
export COLLECTOR_EST_X_PROC=3
export COLLECTOR_TSLEEP=1
export COLLECTOR_WORKERS=6
export GSOF_TIMEOUT=8
export CLL_STATUS="ALL"
export CLL_GROUP='["QSCO"]'
#Datawork                                                                                                         
export DATAWORK_EST_X_PROC=8
export DATAWORK_TSLEEP=2
export DATAWORK_WORKERS=12


export GSOF_TIMEOUT=2
export DW_STATUS="ALL" # OPTIONS: "GROUP" "ALL"                                                                                                                                                                 
export DW_GROUP='["QSCO"]'
export DW_DIR="/home/datawork/datawork_system/datawork/datawork"

export GUI_WORKERS=10
export GUI_STATIONS_BY_WORKER=12
export SELECT_GROUP=4

alias dbus_coords="dbus-monitor type=signal interface=\"csn.coord.interface\""

#export COLLECTOR_SOCKET_IP="10.54.217.15"                                                                                                                                                                      
export COLLECTOR_SOCKET_IP='atlas.csn.uchile.cl'
export COLLECTOR_SOCKET_PORT=6677
#export RDB_SOURCE='atlas.csn.uchile.cl'                                                                                                                                                                        
export RDB_SOURCE='atlas.csn.uchile.cl'
export RDB_ENU='10.54.218.66'
#export DATAWORK_SOCKET_IP="10.54.218.66"                                                                                                                                                                       
export DATAWORK_SOCKET_IP="localhost"
export DATAWORK_SOCKET_PORT=6666


export MQ_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"

export MQ_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"
export MQ_QUEUE_NAME="gpss"

Metadata

Release files for datawork 1.0.56

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datawork 1.0.56
File Size Uploaded Provenance
datawork-1.0.56.tar.gz 563.6 kB Without provenance Details

Release files / datawork-1.0.56.tar.gz

Download URL datawork-1.0.56.tar.gz
Size 563.6 kB
Tags Source
SHA-256 checksum
How to use checksums
d1e66be8d15a6274e7debd3b96f3798781eee8f57482d2d8e2d01e7d1d8a9146
BLAKE2b-256 checksum
How to use checksums
84089065bc22afd1c32185a047fbc2e59b325f3e7a2fb32e53eca3f4581b8622
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.5

Security for datawork 1.0.56

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.56 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page