Python - 导入定期更新的队列

时间:2017-01-17 15:54:08

标签: python queue

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)。

1 个答案:

答案 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()