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
|
||||
click==6.7
|
||||
Flask==0.12.2
|
||||
Flask-Cors==3.0.3
|
||||
idna==2.6
|
||||
itsdangerous==0.24
|
||||
Jinja2==2.10
|
||||
Markdown==2.6.9
|
||||
Markdown==2.6.11
|
||||
MarkupSafe==1.0
|
||||
peewee==2.10.2
|
||||
PyRSS2Gen==1.1
|
||||
requests==2.18.4
|
||||
six==1.11.0
|
||||
urllib3==1.22
|
||||
Werkzeug==0.12.2
|
||||
pyzmq==16.0.3
|
||||
Werkzeug==0.14.1
|
||||
|
Loading…
Reference in New Issue