2014-01-06 12 views
1
from apscheduler.scheduler import Scheduler 
def req(): 
    print 'some thing like hello world or foo' 


if __name__ == '__main__': 
    scheduler = Scheduler() 
    scheduler.add_date_job(req, datetime(2014, 1, 6, 21, 40, 00)) 
    scheduler.start() 
while True: 
     pass 

我嘗試上述代碼蟒CPU使用率98%與apscheduler

來看,它在python2.7和CPU使用率上升到98%是正常的?或者apscheduler包有什麼問題,

可以用更多的內核來改進它嗎?請讓我知道在Python cpu使用率 感謝

系統1

+1

而真: 通 也就是說要使用你的CPU –

回答

3

而真: 通

也就是說要使用你的CPU。我知道你運行它來檢查事件是否會觸發?然後,例如,您可能希望利用循環內的睡眠來降低執行代碼的時間。

from apscheduler.scheduler import Scheduler 
import time 
def req(): 
    print 'some thing like hello world or foo' 


if __name__ == '__main__': 
    scheduler = Scheduler() 
    scheduler.add_date_job(req, datetime(2014, 1, 6, 21, 40, 00)) 
    scheduler.start() 
while True: 
     time.sleep(1) 
     pass 
+0

工作就像一個魅力:d 感謝,但我不明白怎麼做time.sleep (1)? –

+0

@daviddavoodi time.sleep將軟件的執行凍結1秒鐘。您可以在http://docs.python.org/2/library/time.html手冊中閱讀它。此外,如果我的解決方案解決了您的問題,請將其標記爲答案。 –

+0

是的,但5分鐘後:) –

1

核心刪除

while True: 
     pass 

導致CPU使用率過高。

+0

如果我刪除while循環腳本不工作 –

1

這段代碼

while True: 
     pass 

是做一個活性無限循環:沒有輸入,輸出或系統一般呼叫。這意味着所有可用的CPU都被該循環使用。例如,使用sleep或啓動非守護線程。