diff options
| author | Jan Tuomi <jans.tuomi@gmail.com> | 2023-09-10 11:31:06 +0300 |
|---|---|---|
| committer | Jan Tuomi <jans.tuomi@gmail.com> | 2023-09-10 19:01:00 +0300 |
| commit | e54a45b44670aafbd9ad0fdfa70fd1df1857b81b (patch) | |
| tree | 29dbf1d200788cc4d02f189e7db27c0d07509be1 | |
| parent | bead581a92c51ab1e7f18161972d73c6ffa3eb3f (diff) | |
Add initial run for scheduled plugins
| -rw-r--r-- | aggro.py | 2 | ||||
| -rw-r--r-- | app/PluginManager.py | 7 |
2 files changed, 8 insertions, 1 deletions
@@ -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() |
