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