önsöz
Görevinizi tekrar tekrar çalıştırmanız gerektiğinden emin olun. Buna meşgul bekleme ve neredeyse her zaman yetersiz denir . Göreviniz bir alt işlemin çıktısını kontrol ediyorsa, subprocess.wait()
örneğin bunun tamamlanmasını sağlayabilirsiniz . Göreviniz dosya sistemindeki bir dosyaya veya dizine dokunulmasını beklemekse , kodunuzun çekirdek tarafından işlenen dosya sistemi olayından tetiklenmesi için pyinotify'ı kullanabilirsiniz .
Cevap
Çok fazla CPU tüketmeden meşgul beklemek için sonsuz döngüyü bu şekilde yazarsınız.
Python 2:
from __future__ import print_function
from __future__ import division
import time
while True:
range(10000) # some payload code
print("Me again") # some console logging
time.sleep(0.2) # sane sleep time of 0.1 seconds
Python 3:
import time
while True:
range(10000) # some payload code
print("Me again") # some console logging
time.sleep(0.2) # sane sleep time of 0.1 seconds
Değerlendirme
@Gnibbler başka bir yanıtta test edildiğinden , sunulan kod son makinelerde% 1'den fazla CPU tüketmemelidir. Yük kodunuzla hala çok fazla CPU tüketiyorsa, daha fazla uyku zamanını artırmayı düşünün. Öte yandan, yük kodunun tekrarlı yürütme için optimize edilmesi gerekebilir. Örneğin, Önbellekleme değişmemiş verilerde çalışmayı hızlandırabilir.
Kredi
Bu yanıt @ user2301728 yanıtını temel almaya çalışır .