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" executeContract(module) 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) lifecycles[module.name]["state"] = "stopped" return