• 22-02-2023, 20:30:27
    #1
    Merhaba arkadaşlar, Python üzerinde Uvicorn modülüyle yürüttüğüm bir API botum var. Bu bot database ile çalışıyor fakat bazen database pool exhaust oluyor. Ben bu hata geldiğinde scriptin kendini restartlamasını istiyorum, sorun öyle düzeliyor. Bazen gece pool exhaust oluyor ve müşteriler mağdur oluyor ben uyuyo oluyorum manuel aç kapa yapamıyorum haliyle.

    Konuyla alakalı yardımcı olabilecek arkadaşlar mesaj atarsa sevinirim.
  • 22-02-2023, 20:33:36
    #2
    Software Developer
    Merhaba "supervisord" kullanabilirsiniz. Çöktüğü an tekrar ayağa kalkar. Pool hatası içinde poolsize arttırabilirsiniz. mySQL 200 e kadar izin veriyor defaullta.
  • 22-02-2023, 20:34:56
    #4
    supervisoru kurun
    [program:my_api]
    command=python C:\path\to\my_api.py
    autostart=true
    autorestart=true
    redirect_stderr=true
    Bu dosyayı
    C:\ProgramData\supervisor\conf.d\my_api.conf
    olarak kaydedin ve Supervisor'ü yeniden başlatın. Artık Supervisor, my_api programınızı izleyer ve herhangi bir hata oluştuğunda yeniden başlatır dostum

    supervisor-win · PyPI
  • 22-02-2023, 20:37:10
    #5
    import os
    import sys
    import time
    
    def restart_program():
        python = sys.executable
        os.execl(python, python, *sys.argv)
    
    # Database işlemlerini yapan kodlar
    # ...
    
    # Hata durumunda yeniden başlat
    try:
        # Database işlemlerini yapan kodlar
        # ...
    except Exception as e:
        # Hata oluştu, log kaydı al
        print("Hata oluştu:", str(e))
        with open("hatalar.txt", "a") as f:
            f.write(time.strftime("%Y-%m-%d %H:%M:%S") + " " + str(e) + "\n")
        
        # 5 saniye sonra programı yeniden başlat
        time.sleep(5)
        restart_program()
    Pek anladığımdan değil fakat bunu uyarlar mısınız kendi botunuza
  • 22-02-2023, 20:51:52
    #6
    Python Coder
    ozzytr adlı üyeden alıntı: mesajı görüntüle
    import os
    import sys
    import time
    
    def restart_program():
        python = sys.executable
        os.execl(python, python, *sys.argv)
    
    # Database işlemlerini yapan kodlar
    # ...
    
    # Hata durumunda yeniden başlat
    try:
        # Database işlemlerini yapan kodlar
        # ...
    except Exception as e:
        # Hata oluştu, log kaydı al
        print("Hata oluştu:", str(e))
        with open("hatalar.txt", "a") as f:
            f.write(time.strftime("%Y-%m-%d %H:%M:%S") + " " + str(e) + "\n")
        
        # 5 saniye sonra programı yeniden başlat
        time.sleep(5)
        restart_program()
    Pek anladığımdan değil fakat bunu uyarlar mısınız kendi botunuza
    Chatgpt yazmış gibi
  • 22-02-2023, 20:54:08
    #7
    DiZiNi adlı üyeden alıntı: mesajı görüntüle
    supervisoru kurun
    [program:my_api]
    command=python C:\path\to\my_api.py
    autostart=true
    autorestart=true
    redirect_stderr=true
    Bu dosyayı
    C:\ProgramData\supervisor\conf.d\my_api.conf
    olarak kaydedin ve Supervisor'ü yeniden başlatın. Artık Supervisor, my_api programınızı izleyer ve herhangi bir hata oluştuğunda yeniden başlatır dostum

    supervisor-win · PyPI
    C:ProgramData/supervisor
    diye bir klasör oluşmadı supervisoru kurdum ama
  • 22-02-2023, 21:01:46
    #8
    keremyagan adlı üyeden alıntı: mesajı görüntüle
    Chatgpt yazmış gibi
    Evet ben anlamadığımı belirttim işi görülür belki diye kopyalayıp buraya attım hocam