def load(self): """Load modules.""" self.modules = self.loader.load_modules_from_config(self.config) _LOGGER.debug(_("Loaded %i skills"), len(self.modules["skills"])) self.setup_skills(self.modules["skills"]) self.web_server = Web(self) self.web_server.setup_webhooks(self.skills) self.train_parsers(self.modules["skills"]) if self.modules["databases"] is not None: self.start_databases(self.modules["databases"]) self.start_connectors(self.modules["connectors"]) self.cron_task = self.eventloop.create_task(parse_crontab(self)) self.eventloop.create_task(self.web_server.start())
async def start(self): """Create tasks and then run all created tasks concurrently.""" if len(self.skills) == 0: self.critical(_("No skills in configuration, at least 1 required"), 1) await self.start_connectors() self.create_task(self.start_databases()) self.create_task(self.watch_paths()) self.create_task(parse_crontab(self)) self.create_task(self.web_server.start()) self.create_task(self.parse(events.OpsdroidStarted())) await self._run_tasks()
async def load(self): """Load modules.""" self.modules = self.loader.load_modules_from_config(self.config) _LOGGER.debug(_("Loaded %i skills."), len(self.modules["skills"])) self.web_server = Web(self) await self.start_databases(self.modules["databases"]) await self.start_connectors(self.modules["connectors"]) self.setup_skills(self.modules["skills"]) self.web_server.setup_webhooks(self.skills) await self.train_parsers(self.modules["skills"]) self.cron_task = self.eventloop.create_task(parse_crontab(self)) self.eventloop.create_task(self.web_server.start()) self.eventloop.create_task(self.parse(events.OpsdroidStarted()))
def start_loop(self): """Start the event loop.""" connectors, databases, skills = \ self.loader.load_modules_from_config(self.config) _LOGGER.debug("Loaded %i skills", len(skills)) if databases is not None: self.start_databases(databases) self.setup_skills(skills) self.start_connector_tasks(connectors) self.eventloop.create_task(parse_crontab(self)) self.web_server.start() try: pending = asyncio.Task.all_tasks() self.eventloop.run_until_complete(asyncio.gather(*pending)) except RuntimeError as error: if str(error) != 'Event loop is closed': raise error finally: self.eventloop.close()