Refined dispatcher and threading. Added lifecycle registry
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,30 @@
|
||||
import threading
|
||||
from lifecycleregistry import registerLifecycle
|
||||
from lifecyclemanager import manageLifecycle
|
||||
|
||||
threadlist = []
|
||||
threadnum = 0
|
||||
|
||||
def buildThread(module, lifecycles):
|
||||
global threadnum
|
||||
threadnum += 1
|
||||
|
||||
threadname = f"thread.{threadnum}"
|
||||
|
||||
thread = threading.Thread(
|
||||
target=manageLifecycle,
|
||||
args=(module, lifecycles)
|
||||
)
|
||||
thread.start()
|
||||
|
||||
registryname = threadname
|
||||
registryvalue = thread
|
||||
|
||||
lifecycles = registerLifecycle (module, lifecycles, registryname, registryvalue)
|
||||
|
||||
threadlist.append(thread)
|
||||
|
||||
print(threadlist)
|
||||
print(lifecycles)
|
||||
|
||||
return threadnum, threadname, lifecycles, threadlist
|
||||
@@ -0,0 +1,2 @@
|
||||
from .lifecyclemanager import manageLifecycle
|
||||
from .lifecycleregistry import registerLifecycle
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,25 @@
|
||||
import time
|
||||
|
||||
from core.execution.operation import buildOperation
|
||||
from core.execution.action import buildAction
|
||||
from core import executeContract
|
||||
|
||||
def manageLifecycle(module, lifecycles): #lifecycles, state):
|
||||
#print(lifecycles[module.name]["mode"])
|
||||
|
||||
if lifecycles[module.name]["mode"] == "continuous":
|
||||
while lifecycles[module.name]["mode"] == "continuous":
|
||||
print(lifecycles)
|
||||
|
||||
outputs = executeContract(module)
|
||||
|
||||
#print(lifecycles)
|
||||
|
||||
time.sleep(module.sleeptime)
|
||||
|
||||
elif lifecycles[module.name]["mode"] == "oneshot":
|
||||
print(lifecycles)
|
||||
outputs = executeContract(module)
|
||||
|
||||
#print(lifecycles)
|
||||
return
|
||||
@@ -0,0 +1,8 @@
|
||||
def registerLifecycle(module, lifecycles, registryname, registryvalue):
|
||||
if module.name not in lifecycles:
|
||||
lifecycles[module.name] = {}
|
||||
|
||||
|
||||
lifecycles[module.name][registryname] = registryvalue
|
||||
|
||||
return lifecycles
|
||||
Reference in New Issue
Block a user