habe ein kleines Problem wenn ich das Programm wie unten aufgeführt laufen lasse dann erhalte ich immer eine Fehlermeldug (siehe unten)
Code: Alles auswählen
#!/usr/bin/python
#-*- coding:utf8 -*-
import psycopg2
import threading
def Eingang():
while 1:
conn = psycopg2.connect("dbname='Database' user='user' host='127.0.0.1' password='geheim'")
cur = conn.cursor()
cur.execute("UPDATE Test SET State=%s WHERE ID=%s", (result.bits[j-1], j))
conn.commit()
def Ausgang():
while 1:
conn = psycopg2.connect("dbname='Database' user='user' host='127.0.0.1' password='geheim'")
cur = conn.cursor()
cur.execute("Select State FROM Test where ID = 1")
conn.commit()
rows = cur.fetchall()
E1 = rows[0][0]
threads = []
t1 = threading.Thread(target=Eingang)
t2 = threading.Thread(target=Ausgang)
t1.start()
t2.start()
dann kommt folgende Fehlermeldung:
Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 504, in run
self.__target(*self.__args, **self.__kwargs)
File "./test1.py", line 57, in Ausgang
cur.execute("Select State FROM Test where ID = 1")
InternalError: could not open relation with OID 20648
LINE 1: Select State FROM Test where ID = 1
Wenn ich die Methoden Ausgang und Eingang jeweil in einem seperaten skript laufen lasse, dann funktioniert alles.
Deshalb gehe ich davon aus, dass es was mit meinen Thread zu tun hat
kann mir jemand sagen was ich falsch mache?
bei der Fehlermeldung sieht es so aus als würde es die vielen Datenbank zugriffe nicht verschaffen.
komisch ist aber dass es funktioniert wenn ich die 2 Skripte parallel ausführe ohne die Threads