为什么我的 Python 守护进程在睡眠时占用我所有的 CPU?
我正在使用这个食谱: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)
问题是,即使在休眠时,守护进程也会占用几乎所有可用的 CPU 功率。
我做错了什么?
I'm using this recipe: http://code.activestate.com/recipes/278731/ on an Ubuntu server.
I make a daemon instance like this:
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)
The problem is that even while sleeping the daemon takes up almost all available CPU power.
What am I doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
发布的代码看起来是正确的。你的错误一定是在其他地方。将
print
语句放入循环中以确保它确实休眠。The posted code looks correct. Your error must be somewhere else. Put a
print
statement into the loop to make sure that it does sleep.原来守护进程没有睡觉。它循环播放,每回合之间没有休息 30 秒。谢谢亚伦。
我通过将代码更改为以下内容来修复它:
Turns out the daemon wasn't sleeping. It was looping without sleeping 30 seconds between every turn. Thanks Aaron.
I fixed it by changing my code to this: