многопоточное приложение Python для подключения с использованием rabitmq - PullRequest
0 голосов
/ 15 декабря 2018

Недавно я попытался создать многопоточный код Python, используя swagger и connexion и rabitmq .Но я не могу понять, как я могу создать многопоточное приложение помимо очереди (Rabitmq).это мой основной класс .py :

import connexion
import logging
import rabitmq


def request(domain, number):
    json = {"domain": domain, "number": number}
    return rabitmq.queue(json)


logging.basicConfig(level=logging.INFO)
app = connexion.App(__name__)
app.add_api('swagger.yaml')
# set the WSGI application callable to allow using uWSGI:
# uwsgi --http :8080 -w app
application = app.app

if __name__ == '__main__':
    # run our standalone gevent server
    app.run(port=5000, server='gevent')

, и это мой rabitmq.py :

from queue import Queue

import send

import SimilarURLs
import threading


def queue(json):
    print(json)
    data = []
    q = Queue()
    for data in json:
        q.put(data)

    t = threading.Thread(target=send.start(json), args=(q, data))
    t.daemon = True
    t.start()
    q.join()


def take(json):
    returns = SimilarURLs.start(data=json)
    return returns

, и это мой send.py файл, который я использовал pika и rabitmq для запросов на обработку:

import pika
import rabitmq

json = ''

connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()


def start(json):
    channel.queue_declare(queue='req')

    channel.basic_publish(exchange='',
                          routing_key='req',
                          body=rabitmq.take(json=json))
    print(" [x] Sent {}".format(rabitmq.take(json=json)))


channel.start_consuming()

в этих трех файлах я получаю запрос от пользователя, затем передаю его в rabitmq.py и в rabitmq.py этот запрос будет передан send.py для создания многопоточной очереди, но каждый раз, когда я запускаю этот код, мои запросы теряются, и я ничего не получаю.Кто-нибудь знает, как я могу сделать многопоточное приложение на Python, используя swagger и connexion , кроме использования rabitmq в качестве обработчика очереди? Кроме того, я прошу прощения за ошибки в моем вопросе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...