mirror of https://github.com/kianby/stacosys
fetch emails through Zero MQ
parent
dd7ab75460
commit
2c5b63fcf5
@ -0,0 +1,6 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# TODO move to JSON config
|
||||||
|
|
||||||
|
zmq = {'pub_port': 7701, 'sub_port':7702}
|
@ -0,0 +1,43 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import zmq
|
||||||
|
from conf import config
|
||||||
|
from threading import Thread
|
||||||
|
import logging
|
||||||
|
import json
|
||||||
|
from app.services import processor
|
||||||
|
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
context = zmq.Context()
|
||||||
|
|
||||||
|
|
||||||
|
def process(message):
|
||||||
|
data = json.loads(message)
|
||||||
|
if data['topic'] == 'email:newmail':
|
||||||
|
logger.info('newmail => {}'.format(data))
|
||||||
|
processor.enqueue({'request': 'new_mail', 'data': data})
|
||||||
|
|
||||||
|
|
||||||
|
class Consumer(Thread):
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
zsub = context.socket(zmq.SUB)
|
||||||
|
zsub.connect('tcp://127.0.0.1:{}'.format(config.zmq['pub_port']))
|
||||||
|
zsub.setsockopt_string(zmq.SUBSCRIBE, '')
|
||||||
|
self.loop = True
|
||||||
|
while self.loop:
|
||||||
|
message = zsub.recv()
|
||||||
|
try:
|
||||||
|
process(message)
|
||||||
|
except:
|
||||||
|
logger.exception('cannot process broker message')
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
self.loop = False
|
||||||
|
|
||||||
|
|
||||||
|
def start():
|
||||||
|
c = Consumer()
|
||||||
|
c.start()
|
@ -1,16 +1,11 @@
|
|||||||
certifi==2017.11.5
|
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
click==6.7
|
click==6.7
|
||||||
Flask==0.12.2
|
Flask==0.12.2
|
||||||
Flask-Cors==3.0.3
|
|
||||||
idna==2.6
|
|
||||||
itsdangerous==0.24
|
itsdangerous==0.24
|
||||||
Jinja2==2.10
|
Jinja2==2.10
|
||||||
Markdown==2.6.9
|
Markdown==2.6.11
|
||||||
MarkupSafe==1.0
|
MarkupSafe==1.0
|
||||||
peewee==2.10.2
|
peewee==2.10.2
|
||||||
PyRSS2Gen==1.1
|
PyRSS2Gen==1.1
|
||||||
requests==2.18.4
|
pyzmq==16.0.3
|
||||||
six==1.11.0
|
Werkzeug==0.14.1
|
||||||
urllib3==1.22
|
|
||||||
Werkzeug==0.12.2
|
|
||||||
|
Loading…
Reference in New Issue