Πώς μπορώ να χρησιμοποιήσω / δημιουργήσετε ένα δρομέα db στο νήμα python μου;

ψήφοι
0

Παίρνω λάθη σπείρωμα όταν προσπαθώ να χρησιμοποιήσει ή να δημιουργήσετε ένα δρομέα db σε λειτουργία PROCESS_ID μου. Κάθε νήμα θα πρέπει να χρησιμοποιούν τη βάση δεδομένων με τα στοιχεία της διαδικασίας για την πέρασε id τους.

Δεν μπορώ να χρησιμοποιούν ένα δρομέα στο νήμα / PROCESS_ID καθόλου (παίρνω το πέρασμα λάθη και τις ενημερώσεις ποτέ DB) ... Το έχω κωδικοποιημένες πολλούς διαφορετικούς τρόπους. Ο κώδικας λειτουργεί όταν δεν χρησιμοποιείτε θέματα.

Έχω πολύ συγκεκριμένες απαιτήσεις για το πώς αυτός ο κώδικας θα πρέπει να γραφτεί, αργή και σταθερή είναι μια χαρά. Επίσης, κόψτε πολλά αντιμετώπιση των λαθών / καταγραφής πριν από την απόσπαση. Daemon / ατέρμονα βρόχο απαιτείται.

Πώς μπορώ να γυρίσει ένα νέο δρομέα σε κάθε νήμα;

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()
Δημοσιεύθηκε 19/03/2020 στις 21:55
πηγή χρήστη
Σε άλλες γλώσσες...                            

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