idle.py是一个包含队列的文件,这个队列每隔一段时间就会更新一次(当收到一封电子邮件时,在这个例子中我已经大大简化了它但你明白了):
import Queue
q = Queue.Queue()
if email received:
id = email_id
q.put(id)
queuing.py是一个等待队列中有东西的文件:
from idle import q
import time
while True:
if q.empty() == False:
number = q.get()
print "the number is: %s" % number
print "check queue again"
time.sleep(1)
我遇到的问题是q.emtpy()总是在queuing.py中返回True,即使填充了idle.py中的队列(可以通过将print q.empty()置于空闲状态来检查。 PY)。
答案 0 :(得分:0)
这是解决方案的一般前提,基本上启动了一个始终轮询队列的单独线程。
import Queue
import time
import threading
def idle():
if email received:
id = email_id
q.put(id)
def queuing():
while True:
if q.empty() == False:
number = q.get()
print "the number is: %s" % number
print "check queue again"
time.sleep(1)
q = Queue.Queue()
thread1 = Thread(target = idle)
thread2 = Thread(target = queuing)
thread1.start()
thread2.start()