aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2023-09-10 11:31:06 +0300
committerJan Tuomi <jans.tuomi@gmail.com>2023-09-10 19:01:00 +0300
commite54a45b44670aafbd9ad0fdfa70fd1df1857b81b (patch)
tree29dbf1d200788cc4d02f189e7db27c0d07509be1
parentbead581a92c51ab1e7f18161972d73c6ffa3eb3f (diff)
Add initial run for scheduled plugins
-rw-r--r--aggro.py2
-rw-r--r--app/PluginManager.py7
2 files changed, 8 insertions, 1 deletions
diff --git a/aggro.py b/aggro.py
index 6d42687..b57058b 100644
--- a/aggro.py
+++ b/aggro.py
@@ -79,6 +79,8 @@ if __name__ == "__main__":
memory_state.running = True
+ manager.initial_run_scheduled_plugins()
+
plugin_thread = Thread(target=run_plugin_thread, args=[manager, aggro_config])
plugin_thread.start()
diff --git a/app/PluginManager.py b/app/PluginManager.py
index fb6b4c3..03535cc 100644
--- a/app/PluginManager.py
+++ b/app/PluginManager.py
@@ -15,6 +15,7 @@ class PluginManager:
self._plugins: dict[str, Any] = {}
self.plugin_instances: dict[str, PluginInterface] = {}
self.config = config
+ self.scheduled_plugin_ids: list[str] = []
def load_plugin(self, plugin_name: str) -> None:
module: ModuleType = importlib.import_module(f"plugins.{plugin_name}")
@@ -40,7 +41,6 @@ class PluginManager:
self.propagate(id, ret_items)
def build_plugin_instances(self):
- self.graph: dict[str, PluginInterface] = {}
for id in self.config.plugins:
params: Params = self.config.plugins[id]
@@ -53,11 +53,16 @@ class PluginManager:
if schedule_expr is not None:
job: schedule.Job = eval(schedule_expr, {"schedule": schedule})
job.do(self.run_plugin_job, id, None) # type: ignore
+ self.scheduled_plugin_ids.append(id)
PluginClass: Any = self._plugins[plugin_name]
plugin: PluginInterface = PluginClass(id=id, params=params)
self.plugin_instances[id] = plugin
+ def initial_run_scheduled_plugins(self):
+ for id in self.scheduled_plugin_ids:
+ self.run_plugin_job(id, None)
+
def run(self) -> None:
while memory_state.running:
schedule.run_pending()