[ TAG 253 ][30.12.2021] -Erfolgreich -IAP-20210601-20210722 -RPRCSL_20211219_0030

Die heutige Worksession beginnt um [30.12.2021][0400]. Ich habe mich heute entschieden bei der [RPRCSL_20211219_0030]-Liste den [STATE_10] zu erweitern und etwas umzugestalten.
def STATE_10_ITEM(RPRCSL=None, pid=None, ppid=None, status=None):
t0 = time.time()
t1 = datetime.datetime.fromtimestamp(time.time()).strftime("%Y-%m-%d %H:%M:%S")
t2 = time.time_ns()



state_10 = STATE_10_ITEM_COPY(RPRCSL=RPRCSL, pid=pid, ppid=ppid, status=status,t0=t0, t1=t1, t2=t2)
UPDATE_ITEM(RPRCSL=RPRCSL, pid=pid, STATE_10=state_10)
Diese Methode möchte ich heute überarbeiten.

def STATE_10_ITEM_EMPTY():
i = dict()
i["state_10"] = dict()
i["state_10"]["pid"] = None
i["state_10"]["ppid"] = None
i["state_10"]["status"] = None
i["state_10"]["t0"] = None
i["state_10"]["t1"] = None
i["state_10"]["t2"] = None
return i
Ich möchte den [STATE_10] folgende neue Eigenschaften hinzufügen.
  • i["state_10"]["name"] - Prozessname
  • i["state_10"]["t3"] - CreateTime in Sekunden
  • i["state_10"]["t4"] - CreateTime als Zeichenkette formatiert
Während der heutigen Worksession bin ich auf eine sehr interessante Eigenschaft gestoßen.

def START_PROCESS(alog_glb):
print(f"START_PROCESS -> START_PROCESS(alog_glb) wird ausgeführt.")
p = Process(target=ALOG, args=(alog_glb.RPRCSL,))
print(f"Zeile88 p.pid:{p.pid}")
p.start()
print(f"Zeile90 p.pid:{p.pid}")
pid = p.pid
ppid = multiprocessing.process.current_process().pid
GENERATE_RPRCSL_ITEM(rprcsl=alog_glb.RPRCSL, pid=pid, ppid=ppid, status=p.is_alive())

p.join()
RPRCSL_20211219_0030.STATE_20_ITEM(RPRCSL=alog_glb.RPRCSL, pid=pid, ppid=ppid, status=p.is_alive())
print(f"alog_glb.RPRCSL: {alog_glb.RPRCSL}")
Das Problem sieht man in der Zeile 88 und 90. Die PID wird erst in der Zeile 90 vergeben. Somit kann der [RPRCSL]-Item erst in der Zeile 90 angelegt werden.

Zu diesen Zeitpunk denke ich, dass der [STATE_00] aufgrund dieser Gegebenheiten, ein Sonderfall ist. Genauso sollten auch diese Daten behandelt werden. Wenn man bei den Konzept bleibt, dass die Identifier dem ALOG-Prozess übergeben werden, dann wird man an den C-Variablen nicht vorbei kommen. 

Ich finde ich solle dieses Problem mit Zeitmessungen sehr ordentlich dokumentieren. Es handelt sich hier um eine sehr wichtige Eigenschaft, beim Umgang mit Prozessen.

Nach einer Recherche habe ich folgendes gefunden.

In diesen Memory-Block habe ich die Möglichkeit eine Liste bzw. Ein Array zu definieren und diesen dann ab den Prozess zu übergeben.

Am besten gefällt mir die Benutzung des SHM-Moduls. Die Arbeit mit den Byte-Streams in der Vergangenheit hat mir gezeigt, dass es sich um eine sehr schnelle Technologie handelt.

Ein ganz großer Nachteil bei der RPCSL besteht darin, dass der [STATE_00] ein zusätzliches Modul braucht. Die Daten müssen ihn nachträglich eingereicht werden.

Kommentare

Beliebte Posts aus diesem Blog

[ TAG 38 ][29.05.2021] - Erfolgreich - Freelancer-Portale

[ TAG 747 ][07.04.2023] -Erfolgreich -BNKTRS -Google Code -Objekt und Methodenliste

[ TAG 52 ][12.06.2021] - Erfolgreich - IAP-20210601-20210609-2325