#!/usr/bin/env python # -*- coding: utf-8 -*- """ Author: Erickson Silva E-Mail: erickson.silva@lavid.ufpb.br Author: Jonathan Lincoln Brilhante E-Mail: jonathan.lincoln.brilhante@gmail.com Author: Wesnydy Lima Ribeiro E-Mail: wesnydy@lavid.ufpb.br """ import os import pika import PikaManager from PortGlosa import traduzir from time import sleep # Manager of queues connections. manager = PikaManager.PikaManager("rabbit") def run(ch, method, properties, body): """ Execute the worker. Parameters ---------- ch : object Channel of communication. method : function Callback method. properties : object Message containing a set of 14 properties. body : string Json string containing the necessary arguments for workers. """ print ("Translating...") gloss = traduzir(body) manager.send_to_queue("translations", gloss, properties) print ("Ok") def keep_alive(conn_send, conn_receive): """ Keep the connection alive. Parameters ---------- conn_send : object Connection of writer. conn_receive : object Connection of receiver. """ while True: sleep(30) try: conn_send.process_data_events() conn_receive.process_data_events() except: continue # start_new_thread(keep_alive, (manager.get_conn_send(), manager.get_conn_receive())) print ("Translator listening...") while True: try: manager.receive_from_queue("texts", run) except KeyboardInterrupt: manager.close_connections() os._exit(0)