¿Cómo uso / db crear un cursor en mi hilo pitón?

votos
0

Estoy recibiendo errores de roscado cuando intento de usar o crear un cursor db en mi función id_proceso. Cada hilo tendrá que utilizar la base de datos para los datos de proceso para su Identificación del pasado.

No puedo utilizar un cursor en el hilo / ID_proceso en absoluto (recibo errores Threading y las actualizaciones de base de datos nunca) ... He codificado que una gran cantidad de diferentes maneras. El código funciona cuando no uso roscas.

Tengo requisitos muy específicos de cómo el código se va a escribir, lenta y estable está bien. También corté un montón de control de errores / registro antes de su publicación. Se requiere bucle Daemon / Infinito.

¿Cómo puedo girar un nuevo cursor en cada hilo?

import threading
import time
from datetime import datetime
import os
import jaydebeapi, sys

#Enter the values for you database connection
database = REMOVED          
hostname = REMOVED
port = REMOVED               
uid = REMOVED       
pwd = REMOVED 

connection_string='jdbc:db2://'+hostname+':'+port+'/'+database

if (sys.version_info >= (3,0)):
    conn = jaydebeapi.connect(com.ibm.db2.jcc.DB2Driver, connection_string, [uid, pwd], jars=REMOVED)
else:
    conn = jaydebeapi.connect(com.ibm.db2.jcc.DB2Driver, [connection_string, uid, pwd])

# Thread Pool Variables
max_threads = 5
used_threads = 0

# define main cursor
cus=conn.cursor()

def process_id(id):
    #create a cursor for a thread
    cus_id=conn.cursor()
    cus_id.execute(SOME QUERY;)
    cus_id.close()
    global used_threads
    used_threads = used_threads - 1         
    return 0

def daemon():
    global num_threads, used_threads
    print(Daemon running...)
    while True:
        #ids to process are loaded into a list...
        for id in ids_to_process:
            if used_threads < max_threads:
                t = threading.Thread(target=process_id, args=(int(id),))
                t.start()
                used_threads += 1
    return 0

daemon()
Publicado el 19/03/2020 a las 21:55
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more