#49 use queue.Queue for fake pub/sub
This commit is contained in:
16
app.py
16
app.py
@@ -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()
|
||||||
|
|||||||
Reference in New Issue
Block a user