43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
import time
|
|
import os
|
|
|
|
from core.execution.executioncontract import executeContract
|
|
from core.apirequest.execute import getSession
|
|
from core.execution.lifecyclemanager.lifecycleregistry import registerLifecycle
|
|
|
|
lifecycles = {}
|
|
#outputs = {}
|
|
|
|
def manageLifecycle(module):
|
|
from core.runtime.createruntime import outputs
|
|
lifecycle_log = os.environ.get("LOGS_LIFECYCLE", "false").lower() == "true"
|
|
|
|
registerLifecycle (module, lifecycles)
|
|
|
|
if lifecycles[module.name]["mode"] == "continuous":
|
|
while lifecycles[module.name]["mode"] == "continuous":
|
|
lifecycles[module.name]["state"] = "active"
|
|
|
|
response = executeContract(module, outputs)
|
|
|
|
if lifecycle_log:
|
|
print(f"{module.name} thread {lifecycles[module.name][module.name]} running in {lifecycles[module.name]['mode']} mode")
|
|
print(lifecycles)
|
|
|
|
lifecycles[module.name]["state"] = "sleep"
|
|
time.sleep(lifecycles[module.name]["refresh_rate"])
|
|
lifecycles[module.name]["state"] = "stopped"
|
|
|
|
elif lifecycles[module.name]["mode"] == "oneshot":
|
|
lifecycles[module.name]["state"] = "active"
|
|
|
|
if lifecycle_log:
|
|
print(f"{module.name} thread {lifecycles[module.name][module.name]} running in {lifecycles[module.name]['mode']} mode")
|
|
print(lifecycles)
|
|
|
|
response = executeContract(module, outputs)
|
|
|
|
lifecycles[module.name]["state"] = "stopped"
|
|
|
|
return
|