Pythona hataya dusunce uygulamayi yeniden baslatsin yapilabilir mi?

Merhaba arkadaslar uzak sunucudan veri cekiyorum bazen hataya dusebiliyor uygulamam calismiyor python uygulamam pycharm programinuzerinde calistiriyorum 7/24 hataya dustugu sinyali alinca uygulama kapanip tekrar calistirmak icin pythona ozgu kod var mi yada paycharm uygulamasinda tsk ederim.

Try - except bloklarını araştırabilirsiniz. Onların hakkında fazla bir bilgim yok ama işinizi göreceğine eminim.

PyCharm’i (ve butun IDE’leri) sadece gelistirme asamasinda kullanip, calisan programlari (ozellike 7/24 calisanlari) tek baslarina calistirmak lazim.

Ne hatasi?

Hayir. Butun programla dillerinde mevcut olan iki secenek var: Kodu tekrar calisacak sekilde ayarlamak veya programi kapaninca yeniden calistirilacak sekilde ayarlamak.

Sinyal alindiginda yapilacak seyler icin signal modulune bakabilirsin.

1 Beğeni
    except:
        print("HATA OLUŞTU", datetime.now())
        continue

    time.sleep(7) 

buradaki hataya düşüyor bu kısma düşünce uygulamayı yeniden başlatacak bir kod arıyorum yani kapatıp açmak gibi ancak o şekilde çalışıyor.

    except:
        # telegram_bot_sendtext("Sistemde Hata oluştuuu !!!!!!")
        print("HATA OLUŞTU", datetime.now())
        os.system("python proje_.py")
        print("YENİDEN BAŞLATIYORUZZ...")
        #exit()
        continue

    time.sleep(7)  # 30 sn ediyor...

Hataya düşünce yeniden başlatması için bir kod buldum fakat etkili olmadı uygulamayı durdurup yeniden çalıştırınca çalışmaya başlıyor.
nette tekrar araştırdım bu kod bloğu uygulamayı durdurup yeniden başlatıyormuş fakat demo örnek yaptım yeniden başlatmıyor:
os.execv(sys.executable,[‘python’] + sys.argv)

uygulamayı en kötü kapatık kendini açtırmam gerek malesef yapamıyorum.

Boyle olmamasi lazim. Sebebini bulup duzeltebilirsin.

Peki ne oluyor?

O “python” fazla gibi orada. Yukarda “proje_.py” kullandiysan burada da onu kullanabilirsin.

Emin misin? Arkada calisiyor olabilir.

Bir shell script yardimiyla yapabilirsin:
while true; do python -c 'print("foo")'; sleep 2; done

uygulamam pycharm üzerinde çalışıyor.

    except:
        print("HATA OLUŞTU", datetime.now())
        continue 

bu kısma yazılacak yeniden başlatma kodu gerekli yada kapatıp açma bilmiyorum. En kötü senaryo gelince hata varsa kendim başlatacam yoksa şansa kalmış olacak :((((


E evet? Bu kodla ilgili sorularimi cevapladin, denemeni soyledigim seyleri denedin mi bakayim?

evet olmadı malesef :((

Programı bir main fonksiyonuna yazıp, o fonksiyonu while döngüsünde bir try bloğuna alırsanız, her exceptionda yeniden başlar diye düşünüyorum. Bunu denediniz mi?

evet hocam o şekilde denemedim:

    except:
        print("HATA OLUŞTU", datetime.now())
        os.system("python proje_.py")
        print("YENİDEN BAŞLATIYORUZZ...")
        exit()
        continue

    time.sleep(7)  # 30 sn ediyor...

burada hata kısmında sürekli takılıyor hata genelde gece oluşuyor sanırım o vakit çok yoğun oluyor. Gözümle hatayı düştüğünü gördüm ve düzelmedi uygulamayı yeniden başlatınca düzeldi. Benimde amacım HATA alınan kod aralığına uygulamayı kapatıp açsın istiyorum malesef bunu çözemedim.

Merhaba.
Kodunuzu çalıştıran uygulamayı başka bir dosyaya yazmayı denedinizmi ?
Bunu denermisiniz.
main.py:

from os import system
from time import sleep

while True:
	system("python3 proje_.py")
	sleep(5)

proje.py:

except:
        print("HATA OLUŞTU", datetime.now())
        print("YENİDEN BAŞLATIYORUZZ...")
        exit()

    time.sleep(7)  # 30 sn ediyor...

main.py ile proje_.py aynı dizinde olmalı.

ana projeyi main projenin içerisine çektik. buradaki olayı açabilir misiniz peki ? projedeki hata durumunda main.py işlevi tam olarak neyi karşılayacak anlamadım.

Kendi kodunuzda hata çıkarsa exit ile programdan çıkıyorsunuz.
main.py ise uygulamayı yeniden başlatmak için. Eğer programınızdan çıkılırsa döngü başa dönüyor ve tekrardan uygulamanızı açıyor.
Siz uygulamayı başlatmak için main.py dosyasını çalıştırcacaksınız.

1 Beğeni

bu akşam bu şekilde bir test edeyim genelde sabaha karşı hatalar veriyor. İnş. olur. tşk ederim.

1 Beğeni

evet çok işime yaradı sunucudan kaynaklı sıkıntılılar olsada kendini yeniden başlatması harika oldu sağol…

1 Beğeni