0

我在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 资源。

我究竟做错了什么?

4

2 回答 2

3

发布的代码看起来是正确的。您的错误必须在其他地方。将print语句放入循环以确保它确实睡眠。

于 2009-11-02T13:24:55.830 回答
0

原来守护进程没有睡觉。它在每回合之间循环不睡 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)
于 2009-11-02T13:47:39.910 回答