import time import os from core.execution.executioncontract import executeContract from core.apirequest.execute import getSession from core.execution.lifecyclemanager.lifecycleregistry import registerLifecycle lifecycles = {} def manageLifecycle(module): lifecycle_log = os.environ.get("LOGS_LIFECYCLE", "false").lower() == "true" outputs = {} registerLifecycle (module, lifecycles) if lifecycles[module.name]["mode"] == "continuous": while lifecycles[module.name]["mode"] == "continuous": lifecycles[module.name]["state"] = "active" outputs, response = executeContract(module, outputs, None) 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) outputs, response = executeContract(module, outputs, None) lifecycles[module.name]["state"] = "stopped" return