Explorar el Código

Better shutdown

Andy Esnard hace 2 días
padre
commit
aa4675d403
Se han modificado 1 ficheros con 27 adiciones y 1 borrados
  1. 27 1
      chatbot.py

+ 27 - 1
chatbot.py

@@ -9,6 +9,8 @@ import json
 import urllib3
 import base64
 import re
+import signal
+import sys
 
 from dotenv import load_dotenv
 from openai import AsyncOpenAI, OpenAIError
@@ -585,4 +587,28 @@ async def before_update_status():
 
 
 # Démarrer le bot Discord
-client_discord.run(DISCORD_TOKEN)
+async def exit_app(signum=None):
+    globals.logger.debug("Received signal {}".format(signum))
+    globals.logger.info("Closing all tasks...")
+
+    # On ferme la connexion à Discord
+    if client_discord:
+        await client_discord.close()
+	
+    globals.logger.critical("Script halted.")
+
+def handle_signal(signum, frame):
+    loop = asyncio.get_event_loop()
+    loop.create_task(exit_app(signum))
+
+# Starting main function	
+if __name__ == "__main__":
+    # Catch SIGINT signal (Ctrl-C)
+    signal.signal(signal.SIGINT, handle_signal)
+    signal.signal(signal.SIGTERM, handle_signal)
+	
+    try:
+        # Démarrer le bot Discord
+        client_discord.run(DISCORD_TOKEN)
+    except Exception as e:
+        globals.logger.error("Encountered exception while running the bot: {}".format(e))