Как использовать многопоточность в этом python коде? - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь использовать многопоточность в коде, написанном в python - flask. Так что, если я попытаюсь запустить этот код для нескольких пользователей, процесс должен быть параллельным.

Это мой код

from flask import Flask

app = Flask(__name__)

@app.route('/')
def getExtention():
    if(lang == 'python'):
        # Run a code which will compile and run user's python code and show the output of the user's code
    elif(lang == 'java'):
        # Run a code which will compile and run user's java code and show the output of the user's code
    else:
        # Run the code for some other lang. 

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=True)

Что происходит здесь, если один пользователь выберет python lang, конкретный c код будет работать в фоновом режиме. Точно так же, если другой пользователь выберет java, код будет работать в фоновом режиме. Таким образом, процессы должны быть запущены в фоновом режиме. Они не должны ждать друг друга, чтобы закончить.

Пожалуйста, помогите мне использовать многопоточность здесь, чтобы процессы работали параллельно

1 Ответ

0 голосов
/ 06 февраля 2020

Я думаю, что вы должны использовать Evelent или CherryPy Server для запуска вашего приложения.

import cherrypy

from app import app

if __name__ == '__main__':
   try:
    # Mount the application
    cherrypy.tree.graft(app, "/")

    # Set the configuration of the web server
    cherrypy.config.update({
        'log.screen': True,
        'server.socket_port': app.config['PORT'],
        'server.socket_host': '::',
        'server.thread_pool': 30,
        'server.shutdown_timeout': 1
    })
    cherrypy.engine.start()
    cherrypy.engine.block()
  except KeyboardInterrupt:
    cherrypy.engine.stop()

Здесь приложение - это каталог python, а в файле app / init вы можете создать приложение flask.

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