Comment puis-je utiliser / créer un curseur db dans mon fil python?

voix
0

Je reçois des erreurs de filetage lorsque je tente d'utiliser ou de créer un curseur db dans ma fonction id_processus. Chaque thread devra utiliser la base de données à traiter des données pour leur id passé.

Je ne peux pas utiliser un curseur dans le fil / PROCESS_ID du tout (je reçois des erreurs Threading et les DB jamais mises à jour) ... Je l'ai beaucoup il codé de différentes façons. Le code fonctionne quand je ne l'utilise threads.

J'ai des exigences très précises sur la façon dont le code doit être écrit, lent et stable est très bien. Je coupe aussi beaucoup de manutention / consignation d'erreurs avant l'affichage. boucle daemon / Infini est nécessaire.

Comment puis-je tourne un nouveau curseur dans chaque thread?

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()
Créé 19/03/2020 à 21:55
source utilisateur
Dans d'autres langues...                            

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