मैं एक फ्लास्क ऐप बना रहा हूं और चलाने के लिए कुछ पृष्ठभूमि प्रक्रियाओं की आवश्यकता है। मैंने मल्टीप्रोसेस के साथ जाने का फैसला किया, लेकिन फ्लास्क के भीतर चलते समय यह दो प्रक्रियाओं का उत्पादन कर रहा है। क्या कोई जानता है कि ऐसा क्यों होगा? मैंने ओएस एक्स और उबंटू 12.04 पर एक ही परिणाम के साथ इसका परीक्षण किया है।फ्लास्क ऐप के अंदर मल्टीप्रोसेस 2 प्रक्रियाओं को कताई
import time
import multiprocessing
from flask import Flask
app = Flask(__name__)
backProc = None
def testFun():
print('Starting')
while True:
time.sleep(3)
print('looping')
time.sleep(3)
print('3 Seconds Later')
@app.route('/')
def root():
return 'Started a background process with PID ' + str(backProc.pid) + " is running: " + str(backProc.is_alive())
@app.route('/kill')
def kill():
backProc.terminate()
return 'killed: ' + str(backProc.pid)
@app.route('/kill_all')
def kill_all():
proc = multiprocessing.active_children()
for p in proc:
p.terminate()
return 'killed all'
@app.route('/active')
def active():
proc = multiprocessing.active_children()
arr = []
for p in proc:
print(p.pid)
arr.append(p.pid)
return str(arr)
@app.route('/start')
def start():
global backProc
backProc = multiprocessing.Process(target=testFun, args=(), daemon=True)
backProc.start()
return 'started: ' + str(backProc.pid)
if __name__ == '__main__':
app.run(port=int("7879"))
मैं चाहता था पाइथन 2.7.x का उपयोग कर एक डिमन के रूप में चलने की प्रक्रिया के साथ एक प्रक्रिया async बनाने के लिए। समस्या यह है कि एंडपॉइंट में वापसी तब तक नहीं होती जब तक कि प्रक्रिया समाप्त नहीं हो जाती है, भले ही डिमन सही पर सेट हो। मैं इसे यूडब्ल्यूएसजीआई पर चला रहा हूं, शायद यही कारण है कि। – radtek