Почему я создаю две разные очереди? - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь настроить приложение, которое будет получать HTTP GET и POST, используя python и флак-restful.Проблема, которую я получаю, состоит в том, что при запуске приложения я вижу, что есть два экземпляра генерируемой очереди.Я хотел бы, чтобы вы помогли мне понять, почему?

Вывод приложения (терминал):

<queue.Queue object at 0x10876fdd8>
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
<queue.Queue object at 0x10ce48be0>
 * Debugger is active!
 * Debugger PIN: 292-311-362

Код Python (запускается с помощью следующей команды python -m main):

import json
from flask import Flask, request
from flask_restful import Resource, Api, reqparse
import requests
import os
import threading
import queue
import sys

app = Flask(__name__)
api = Api(app)

parser = reqparse.RequestParser()
parser.add_argument("endpoint")

queue = queue.Queue()

base_path = os.path.dirname(os.path.realpath(__file__))
config = Json_Parser().get_json_object(base_path + "path")

consumer = Consumer(config, queue)
t1 = threading.Thread(target=consumer.consume)
t1.start()


class Interaction(Resource):
    def get(self):
        self.create_interaction()
        thread_queue = consumer.get_queue()
        output = thread_queue.get()
        return output

api.add_resource(Interaction, '/interaction')

if __name__ == '__main__':
    print(queue)
    app.run(debug=True)

1 Ответ

0 голосов
/ 14 мая 2019

С помощью @Richar de Wit я изменил следующую строку:

app.run(debug=True)

на:

app.run(debug=True, use_reloader=False)

назапретить отладчику создавать две очереди, что впоследствии вызовет проблемы.

Проблема, на которую ссылаются в этом вопросе:

Почему сервер Dev Flask запускается дважды?

...