Python maceralarım 5 – Sonsuz döngülerin işlemciyi yorması
Bazen pythonda bir servis yazarız ve bu servisin asla durmamasını isteriz. Örneğin bir API’den bilgi alan ve bazı kriterlere göre filtrelenen veriyi telegram veya e-posta üzerinden bildirim olarak gönderen bir servisimiz var diyelim. Bunun için yapılması gereken basit. Tek dosyalık bir python scriptimizin içinde gerekli kütüphaneleri import edip ufak tefek ayarları yaptıktan sonra while True: ile bir döngü başlatırız. Bu döngü içerisinde hiçbir işlem yapılmayacağı için boş bırakılır normalde ama python sintaksına göre döngü veya dallanma bloğu oluştuğunda orada bir komut bulunmak zorunda. Bu yüzden döngü bloğunda pass yazarız. Fakat bu büyük bir problemdir çünkü pass yazdığınızda bu döngü sürekli dönecek ve işlemciyi yoracaktır. Bir de bakmışsınız sisteminiz yavaşlamış, işlemci kullanımı %90lara ulaşmış, fandan uçak motoru gibi sesler geliyor falan filan.
Isınma ve işlemci kullanımının artması istenmeyen bir durumdur. Basit bir servisin bu kadar işlemci kullanması olası bir durum değildir. Bu problemi çözmek için imdadımıza time.sleep() fonksiyonu yetişmektedir. Sonsuz döngülerde pass veya continue kullanmak yerine time.sleep(5) yazarsanız işlemciniz rahat bir nefes alacaktır.
Python ile başladığımız yolculuğa hızlı ve emin adımlarla devam etmekteyiz. Bu macerada yaşadığım ilginç ve önemli serüvenleri paylaşmaya devam edeceğim. Bol kodlamalı günler dilerim.
0 yorum