cic-internal-integration/apps/cic-eth/cic_eth/callbacks/tcp.py
2021-03-01 20:15:17 +00:00

30 lines
709 B
Python
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# standard imports
import socket
import logging
import json
# third-party imports
import celery
# local imports
from . import Callback
celery_app = celery.current_app
logg = celery_app.log.get_default_logger()
@celery_app.task(base=Callback, bind=True)
def tcp(self, result, destination, status_code):
s = socket.socket(family=socket.AF_INET, type=socket.SOCK_STREAM)
(host, port) = destination.split(':')
logg.debug('tcp callback to {} {}'.format(host, port))
s.connect((host, int(port)))
data = {
'root_id': self.request.root_id,
'status': status_code,
'result': result,
}
s.send(json.dumps(data).encode('utf-8'))
s.close()