1
我創建了一個jabberbot類,我想安排廣播消息。我沒有太多的線程經驗(使用任何語言),但我很難用Python來理解這個概念。執行功能每隔X秒級初始化
我lattest嘗試使用threading.timer是這樣的:
class myBot(JabberBot):
def __init__(self, jid, password, res = none):
autoNotify()
def autoNotify():
#Send timed message
self.send('[email protected]','cooool message text!')
#set/reset timer
t = Timer(05,self.autoNotify)
t.start()
這裏的問題是,它不斷派生新的線程,直到它最終死亡。我已經閱讀了很多關於如何使用第三方庫,消息隊列和扭曲的示例,但我的問題僅僅是這樣 - 真的沒有簡單的方法來產生單個異步線程嗎?
真棒例子,謝謝!你有可能擴展爲什麼你不應該在構造函數中產生線程?我想我已經明白爲什麼了,但是我愛從知道比我更好的人那裏知道。 – HurnsMobile 2012-02-28 00:47:10
@HurnsMobile:這是一條簡單的規則:除初始化之外,不要在構造函數中做任何事情。你的API的用戶不希望構造函數有副作用,所以不要這樣做。它已經並將導致難以追蹤的微妙的錯誤。 – 2012-02-28 00:57:03