为什么我的Python守护进程在睡觉时占用了我所有的CPU?

时间:2009-11-02 13:05:52

标签: python cpu daemon

我在Ubuntu服务器上使用此配方:http://code.activestate.com/recipes/278731/

我创建一个这样的守护进程实例:

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)

问题是,即使在守护守护进程时,几乎占用了所有可用的CPU功率。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

发布的代码看起来正确。您的错误必须在其他地方。将print语句放入循环中以确保它处于休眠状态。

答案 1 :(得分:0)

原来这个守护进程没有睡觉。它在每回合之间没有睡30秒就循环了。谢谢Aaron。

我通过将代码更改为:

来修复它
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)