#49 use queue.Queue for fake pub/sub

This commit is contained in:
Henning Jacobs
2017-01-06 22:55:21 +01:00
parent 53ca68789e
commit b7884f0f6a

16
app.py
View File

@@ -16,6 +16,7 @@ import requests
import datetime import datetime
import time import time
import tokens import tokens
from queue import Queue
from flask import Flask, redirect from flask import Flask, redirect
from flask_oauthlib.client import OAuth, OAuthRemoteApp from flask_oauthlib.client import OAuth, OAuthRemoteApp
@@ -24,19 +25,18 @@ from urllib.parse import urljoin
class Store: class Store:
def __init__(self): def __init__(self):
self._events = [] self._queues = []
def publish(self, event_type, event_data): def publish(self, event_type, event_data):
self._events.append((event_type, event_data)) for queue in self._queues:
queue.put((event_type, event_data))
def listen(self): def listen(self):
i = 0 queue = Queue()
self._queues.append(queue)
while True: while True:
if i < len(self._events): item = queue.get()
yield self._events[i] yield item
i += 1
else:
gevent.sleep(0.2)
STORE = Store() STORE = Store()