from sentence import Sentence from store_handler import StoreHandler def _consume_message(ch, method, properties, body): try: sentence = Sentence() sentence.from_json(body) _persist_sentence(sentence) mq_handler.ack(method) except Exception as e: logging.error("Could not consume message: " + body + ".\nException:" + str(e)) def _persist_sentence(sentence): query = """INSERT INTO my_key_space.sentences (language, time, id, author, text) VALUES (%s,%s,%s,%s,%s)""" params = (sentence.get_language(), _timestamp(), uuid.uuid4(), sentence.get_author(), sentence.get_text()) store_handler.execute_query(query, params) def _timestamp(): return int(time.time() * 1000) if __name__ == "__main__": logging.basicConfig(level=logging.DEBUG) store_handler = StoreHandler() mq_handler = MQHandler() mq_handler.start_consuming(_consume_message, "storage", False)
import sys sys.path.append('common/src') import logging from mq_handler import MQHandler def _consume_message(ch, method, properties, body): logging.info(body) def _format(): return 'LOGGING SERVICE - %(asctime)s - New message in queues: %(message)s' if __name__ == '__main__': mq_handler = MQHandler() logging.basicConfig(format=_format(), level=logging.DEBUG) mq_handler.start_consuming(_consume_message, 'logging', True)
def _translate_to_all_languages(original_sentence): languages = _get_languages() languages.remove(original_sentence.get_language()) for language in languages: _translate_to(original_sentence, language) def _translate_to(original_sentence, to_language): translation = translator.translate( original_sentence.get_text(), to_language, original_sentence.get_language()) translated_sentence = Sentence() translated_sentence.set_author(original_sentence.get_author()) translated_sentence.set_language(to_language) translated_sentence.set_text(translation) mq_handler.publish('storage', '', translated_sentence.to_json(), True) def _get_languages(): return os.environ['LANGUAGES'].split(":") if __name__ == '__main__': logging.basicConfig(level=logging.DEBUG) translator = Translator( os.environ['TRANSLATE_API_CLIENT_ID'], os.environ['TRANSLATE_API_SECRET']) mq_handler = MQHandler() mq_handler.start_consuming(_consume_message, 'translation', False)