Conf Jetco x GD32 GLD25
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# readFile v. 0.1
|
||||
# - single instance timer
|
||||
# - invio multiplo x send eventi accodati
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
import time
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
import urllib
|
||||
import ConfigParser
|
||||
import os, sys
|
||||
|
||||
import logging
|
||||
import logging.handlers
|
||||
import Queue
|
||||
|
||||
import argparse
|
||||
#--------------------------------------------------------------
|
||||
|
||||
# gestione parser argomenti in input
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("memFile")
|
||||
parser.add_argument("logFile")
|
||||
args = parser.parse_args()
|
||||
|
||||
#definizione variabili BASE
|
||||
stepQueuePut=25000
|
||||
stepQueueGet=250
|
||||
NMAXSEND=500000 # limite invio file x fare prove...
|
||||
idxMacchina = "2003"
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# Gestione coda (condivisa) x registrazione eventi ed invio URL
|
||||
#print "Creazione coda illimitata"
|
||||
Coda = Queue.Queue(0)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
#Funzione di scrittura su coda con try-except
|
||||
|
||||
def accoda(valore):
|
||||
|
||||
try:
|
||||
Coda.put(valore)
|
||||
except Queue.Full:
|
||||
logPro.error( "Queue full" + dtEve + '#' + value + '#' + cont )
|
||||
except:
|
||||
logPro.error( "NETWORK:Errore http-no com rete-timeout" + url )
|
||||
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# svuotaCoda x invio dati al server
|
||||
def svuota_coda():
|
||||
|
||||
global NMAXSEND
|
||||
|
||||
try:
|
||||
if not Coda.empty():
|
||||
# invio SOLO i primi NMAXSEND eventi... SE minore del num eventi...
|
||||
if NMAXSEND > Coda.qsize():
|
||||
NMAXSEND = Coda.qsize()
|
||||
|
||||
|
||||
i = 0
|
||||
|
||||
with open(args.logFile,"w") as outf:
|
||||
while i <= NMAXSEND:
|
||||
if not Coda.empty():
|
||||
|
||||
# formatto dataOra corrente
|
||||
dtCurr = datetime.utcnow().strftime('%Y%m%d%H%M%S%f')[:-3]
|
||||
|
||||
#prendo primo elemento dalla coda
|
||||
resp = Coda.get()
|
||||
|
||||
# recupero valori da elemento coda!
|
||||
dtEve = resp.split("#")[0]
|
||||
value = resp.split("#")[1]
|
||||
cnt = resp.split("#")[2]
|
||||
url = URLBASE + idxMacchina + URLADV1 + value
|
||||
url = url + '&dtCurr=' + dtCurr + '&dtEve=' + dtEve + '&cnt=' + cnt
|
||||
# CHIAMO URL
|
||||
response3 = urllib.urlopen ( url )
|
||||
answ3 = response3.read()
|
||||
|
||||
# registro chiamata + risposta
|
||||
# outf.write(url + " --> " + answ3 + "\n")
|
||||
|
||||
# incremento e controllo se mostrare output
|
||||
i += 1
|
||||
if (i % stepQueueGet) == 0:
|
||||
print "Inviati %d valori..." % i
|
||||
|
||||
print "Inviati %d valori..." % i
|
||||
except:
|
||||
print "Errore in svuotamento coda!"
|
||||
|
||||
|
||||
#---------------------------------------------------------------
|
||||
# MAIN
|
||||
|
||||
try:
|
||||
config = ConfigParser.RawConfigParser()
|
||||
config.read ( 'IOB.cfg' )
|
||||
|
||||
# NMAXSEND = config.getint ( 'time' , 'NMAXSEND' )
|
||||
# idxMacchina = config.get ( 'id' , 'idxMacchina' )
|
||||
|
||||
|
||||
URLBASE = config.get ( 'web' , 'URLBASE' )
|
||||
URLADV1 = config.get ( 'web' , 'URLADV1' )
|
||||
|
||||
LOGFILE = config.get ( 'log' , 'LOGFILE' )
|
||||
LOGLEVEL = config.get ( 'log' , 'LOGLEVEL' )
|
||||
except:
|
||||
print "\n\n" + PROGRAM_NAME + ' - Error 4 - in config file ' 'IOB.cfg'
|
||||
sys.exit(1)
|
||||
|
||||
#---------------------------------------------------------------
|
||||
|
||||
dtCurr = datetime.utcnow().strftime('%H:%M:%S.%f')[:-3]
|
||||
print "Inizio elaborazione: %s" % dtCurr
|
||||
|
||||
# Leggo il file!
|
||||
i = 0
|
||||
with open(args.memFile, 'r') as inf, open(args.logFile,"w") as outf:
|
||||
data = inf.readlines()
|
||||
|
||||
print "Trovate %d da processare..." % len(data)
|
||||
|
||||
# leggo e metto in QUEUE...
|
||||
for line in data:
|
||||
accoda(line)
|
||||
i += 1
|
||||
if (i % stepQueuePut) == 0:
|
||||
print "Accodati %d valori..." % i
|
||||
|
||||
print "Completata lettura file! %d righe accodate da trasmettere" % Coda.qsize()
|
||||
|
||||
dtCurr = datetime.utcnow().strftime('%H:%M:%S.%f')[:-3]
|
||||
print "Inizio invio: %s" % dtCurr
|
||||
|
||||
|
||||
# chiamo procedura x svuotare coda...
|
||||
svuota_coda()
|
||||
|
||||
dtCurr = datetime.utcnow().strftime('%H:%M:%S.%f')[:-3]
|
||||
print "Completato invio: %s" % dtCurr
|
||||
Reference in New Issue
Block a user