Почему мой демон Python перегружает весь процессор во время сна? - PullRequest
0 голосов
/ 02 ноября 2009

Я использую этот рецепт: http://code.activestate.com/recipes/278731/ на сервере Ubuntu.

Я делаю экземпляр демона так:

class MyDaemon(Daemon):
    def run(self):
        while True:
            try:      
                do_my_data_processing()
            except MySQLdb.OperationalError:
                # Sleep an extra 30 seconds if database is away.
                time.sleep(30)
            time.sleep(30)

Проблема в том, что даже во время сна демон занимает почти всю доступную мощность процессора.

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 02 ноября 2009

Размещенный код выглядит правильно. Ваша ошибка должна быть где-то еще. Поместите оператор print в цикл, чтобы убедиться, что он спит.

0 голосов
/ 02 ноября 2009

Оказывается, демон не спал. Это был цикл без сна 30 секунд между ходами. Спасибо Аарон.

Я исправил это, изменив свой код на это:

class MyDaemon(Daemon):
    def run(self):
        while True:
            try:      
                do_my_data_processing()
                time.sleep(30)
            except MySQLdb.OperationalError:
                # Sleep an extra 30 seconds if database is away.
                time.sleep(30)
...