Include simultanious testing in status
All checks were successful
Build and Publish Jimmy.2 / build_and_publish (push) Successful in 7s

This commit is contained in:
Nexus 2024-06-01 13:57:00 +01:00
parent 899e9c84dd
commit b70016326a
Signed by: nex
GPG key ID: 0FA334385D0B689F

View file

@ -978,19 +978,25 @@ class Ollama(commands.Cog):
msg = await ctx.reply(embed=embed) msg = await ctx.reply(embed=embed)
last_edit = time.time() last_edit = time.time()
tasks = {}
for server in self.servers.keys(): for server in self.servers.keys():
if self.servers[server].locked(): if self.servers[server].locked():
continue continue
try: tasks[server] = asyncio.create_task(self.check_server(CONFIG["ollama"][server]["base_url"]))
ok = await self.check_server(CONFIG["ollama"][server]["base_url"])
except Exception as e: await asyncio.gather(*tasks.values())
ok = False for server, task in tasks.items():
if not task.done:
await task
if e := task.exception():
self.log.error("Error while checking server %r: %r", server, e, exc_info=True) self.log.error("Error while checking server %r: %r", server, e, exc_info=True)
else:
ok = task.result()
for field in embed.fields: for field in embed.fields:
if field.name == server: if field.name == server:
field.value = "\U00002705 Online" if ok else "\U0000274c Offline" field.value = "\U00002705 Online" if ok else "\U0000274c Offline"
break break
await asyncio.sleep(1 - (time.time() - last_edit))
await msg.edit(embed=embed) await msg.edit(embed=embed)