
Queue
Publicado por Sergio (9 intervenciones) el 17/06/2019 02:04:55
Hola.
Estoy trabajando con el módulo queue y lo que quiero es llenar una cola con msj repetivos que se ejecutan en un bucle infinito cada cierto tiempo, eso lo he logrado con éxito. El tema es que deseo que cuando lee una variable desde una bd mysql y esta tome un valor determinado, elimine los msj almacenados en la cola para mostrar un msj específico. Podrían darme una mano???
Ahí agrego el código:
Gracias!!!!!!
Estoy trabajando con el módulo queue y lo que quiero es llenar una cola con msj repetivos que se ejecutan en un bucle infinito cada cierto tiempo, eso lo he logrado con éxito. El tema es que deseo que cuando lee una variable desde una bd mysql y esta tome un valor determinado, elimine los msj almacenados en la cola para mostrar un msj específico. Podrían darme una mano???
Ahí agrego el código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/python
# -*- coding: iso-8859-15
#from lcd import *
import Queue
import threading
from time import sleep
import MySQLdb
DB_HOST = 'localhost'
DB_USER = 'root'
DB_PASS = 'mi_pass'
DB_NAME = 'mi_name'
def run_query(query=''):
datos = [DB_HOST, DB_USER, DB_PASS, DB_NAME]
conn = MySQLdb.connect(*datos) # Conectar a la base de datos
cursor = conn.cursor() # Crear un cursor
cursor.execute(query) # Ejecutar una consulta
if query.upper().startswith('SELECT'):
data = cursor.fetchall() # Traer los resultados de un select
#data = cursor.fetchone() # Traer los resultados de una sola fila
else:
conn.commit() # Hacer efectiva la escritura de datos
data = None
cursor.close() # Cerrar el cursor
conn.close() # Cerrar la conexion
return data
opcion0 = 0
opcion1 = 1
opcion2 = 2
opcion3 = 3
opcion4 = 4
# FIFO LCD
mq = Queue.Queue()
def periodica():
mq.put(opcion0)
mq.put(opcion1)
sleep(0)
mq.put(opcion0)
mq.put(opcion2)
sleep(0)
mq.put(opcion0)
mq.put(opcion3)
sleep(0)
mq.put(opcion0)
mq.put("")
#print (mq.get())
global per
per = threading.Timer(10.0, periodica)
per.start()
inicio = 0
while True:
if inicio == 0:
periodica()
inicio = 1
else:
query="SELECT * FROM msj WHERE id = '1'"
uid=run_query(query)
tipo=uid[0][1]
fecha=uid[0][2]
#print tipo
if tipo == "1":
per.cancel()
mq.empty()
mq.put(opcion0)
mq.put(opcion4)
print (mq.get())
sleep(10)
query = "UPDATE msj SET tipo = '0', fecha = NOW() WHERE id = '1'"
uid = run_query(query)
periodica()
print (mq.get())
sleep(1)
Gracias!!!!!!
Valora esta pregunta


0