Python kodunun otomatik kapanması

Merhabalar,
Uygulama üzerinde websocket kullanıyorum. Hemen hemen 6 -7 saat çalıştıktan sonra process finished with exit code 0 ile kapanmış oluyor. Sizce neden olabilir. Normal şartlarda sonsuza kadar çalışması gerekmez mi?
ws = websocket.WebSocketApp(SOCKET, on_open=on_open, on_close=on_close, on_message=on_message)
ws.run_forever()

Benim bir server ım olsa biri benim Server 'ıma client olarak belli bir süre bağlı kalırsa, client ı belirli bir süre sonra atardım. Açık unutmuş olabilir ve kullanmıyor olabilir.

Siz socket ile nereye bağlanıyorsunuz bilemiyorum ama server sonsuza dek client ya hizmet etmez. Bir süre sonra bant genişliği, kullanıcı sayısı iş yükü gibi nedenlerle session u sonlandırabilir.

İhtimal muhtelif. Socket için bir ömür de verilmiş olabilir. Belirli periyotla oturumu kendiniz kapatıp tekrar açarak bu fenomeni çözmeye kafa yormak durumundan kurtulabilirsiniz.

Selamlar hocam,
Bağlı kaldığım yer wss://stream.binance.com:9443 sanırım dediğinizden kaynaklı olabilir. Binance socket için 24 saat ömür olduğunu yazmış.
Birde aklıma şu geldi gelen verileri pandas ta tutuyordum acaba ram kullanımı artıyorda ondan durduruyor olabilir mi?

Kodu analiz etmek gerekir, karşı tarafta olmasa bile sizin tarafta bağlantıyı sonlandırmak için bir sınır bulunabilir. Bu kullandığınız bir kütüphanenin içinde ayarlamış olabilir.

Ram kullanımından kaynaklı olduğunu düşünmüyorum istisnai bir durum olabilir.

Hiç detayına boğulmadadan bir timer tutup, bağlantınızı 5 saatte bir sonlandırıp tekrar başlatmak gibi basit bir çözümle devam etmenizin birden çok faydası olacaktır.

Selamlar hocam,
Binance servisi 11 saattir çalışıyor. Pandas kodunu yoruma almıştım. Sanırım pandas tan kaynaklı gibi duruyor.

Bence koddan dolayi. Exit code 0 ile bitmesine neden olacak kod var.

bkz: Soru Sorarken Sıkça Düşülen Hatalar #6

Kullandiginiz kutuphanenin (bkz: #11) WebSocketApp::run_forever fonksiyonunun dokumantasyonuna da bakmak isteyebilirsiniz. Sirf ismi “run forever” diye sonsuza kadar calismak zorunda degil.

1 Beğeni

Tabi ki bir kod sizin bağlantınız sonlandırıyor olabilir. Bunu bulmak için kodunuzu görmemiz incelememiz ve hangi konfigürasyonla çalıştırdığınızı test etmemiz gerekir ki bu da uzunca bir süre ve karşılıklı dialog gerektirir.

Bu nedenle, eğer şu aşamada pandas satırlarından şüpheleniyorsanız. pandas için timeout ayarlarına bakmanız gerekir.

Bu aşamada kod analizi ile uğraşmak yerine bağlantıyı belirli periyotta açıp kapatmak yeterli gibi bir öneri vereblirim.

Israrcı iseniz pandas kodunuzu da görmemiz gerekecektir.

websocket kütüphanesinin run_forever methodu biraz problemli. kütüphaneyle alakalı bir durum diye hatırlıyorum. bazı durumlarda 10 gün sonra kapatıyor bazı durumlarda 1 saat sonra. en iyisi bağlantı koptuğunda yeni bir bağlantı oluşturmak.