Может ли p = Process () быть задан снаружи, если __name__ == '__main__' в python? - PullRequest
1 голос
/ 09 июля 2019

Я хочу использовать многопроцессорную обработку в python для параллельного запуска 10 функций. Но в каждом примере я видел порождение процесса, выполняемого только внутри, если name = " main ". Я использую колбу api в моем коде Python, поэтому должен вызвать app.run () и оттуда я вызываю main (). Поэтому я сомневаюсь, что я могу делать это, вызывая процессы для многопроцессорной обработки внутри main (), а не в случае, если name ?

Это минимальная версия моего кода

app= Flask(__name__,template_folder='templates', static_folder='static')
@app.route('/')
def index():
     return render_template('firstpage.html')
@app.route('/', methods=['POST'])
def getvalue():
    #some basic declarations
    main()
    flask.jsonify({'html': filename})

def main():
    start_time = time.time()
    createDirectory("Myapp")
    p1 = Process(target=func1(mycol1,mycol2))
    p1.start()
    p2 = Process(target=func2(mycol3,mycol4))
    p2.start()
    p3 = Process(target=func3(mycol5,mycol6))
    p3.start()
    p4 = Process(target=func4(mycol7,mycol8))
    p4.start()
    p1.join()
    p2.join()
    p3.join()
    p4.join()
    print("--- %s seconds ---" % (time.time() - start_time))

if __name__ == "__main__":
    app.run(debug=True)

У меня есть 10 таких функций. Любые предложения по улучшению кода или подхода будут полезны.

...