Hallo Zusammen, entweder stehe ich gerade völlig auf den Schlauch....
Bei meinem Smartmeterprojekt möchte ich die Durchlaufzeit verkürzen, um dies zu erreichen wollte ich den Vorgang welcher die Messwerte in die Datenbank schreibt in einen eigenen Prozess auslagern.
Vor der Auslagerung funktioniert das Schreiben in die Datenbank, nach der Umgestaltung erhalte ich folgenden Fehler:
Traceback (most recent call last):
File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap
self.run()
File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run
self._target(*self._args, **self._kwargs)
File "smartmeter.py", line 211, in datenbank_prozess
pg_handler.daten_schreiben(daten_liste)
File "smartmeter.py", line 124, in daten_schreiben
conn.execute(sql, values)
File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py", line 942, in execute
return self._execute_text(object, multiparams, params)
File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py", line 1104, in _execute_text
statement, parameters
File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py", line 1200, in _execute_context
context)
File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py", line 1413, in _handle_dbapi_exception
exc_info
File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/util/compat.py", line 265, in raise_from_cause
reraise(type(exception), exception, tb=exc_tb, cause=cause)
{'result': [], 'ok': True}
File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/util/compat.py", line 248, in reraise
raise value.with_traceback(tb)
File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/base.py", line 1193, in _execute_context
context)
File "/usr/local/lib/python3.5/dist-packages/sqlalchemy/engine/default.py", line 509, in do_execute
cursor.execute(statement, parameters)
sqlalchemy.exc.InternalError: (psycopg2.InternalError) current transaction is aborted, commands ignored until end of transaction block
[SQL: 'INSERT INTO smartmeter (ts, Strom_L1, Strom_L2, Strom_L3) VALUES (%s, %s, %s, %s)'] [parameters: (datetime.datetime(2018, 8, 4, 21, 5, 22), 1.358, 0.1693, 0.1566)] (Background on this error at: http://sqlalche.me/e/2j85)
Display More
Allerdings komme ich auch mithilfe des Links nacht dahinte wo das Problem ist.
Im Anhang poste ich mal das funktionierende Skript ohne Multiproccessing und einmal das Fehlerhafte.
Über die Compare Darstellung sollte man so einen schnellen Überblick bekommen was ich geändert habe. Vielleicht sieht von euch ja jemand den Fehler
Zusatzinfo: sqlalchemy wird aus nächsten Schritt entfernt und nur noch auf das reine psycopg2 gesetzt...