बहु मैं समानांतर प्रसंस्करण के लिए बहु मॉड्यूल का उपयोग कर रहा के बच्चे प्रक्रिया। बोले कोड स्निपेट एक्स स्थान में स्ट्रिंग फ़ाइल नाम खोजता है और फ़ाइल नाम लौटाता है जहां स्ट्रिंग मिली। लेकिन कुछ मामलों में खोज प्रक्रिया में काफी समय लगता है, इसलिए मैं 300 से अधिक सेकंड लेने के साथ खोज प्रक्रिया को मारने की कोशिश कर रहा था। इसके लिए मैंने टाइमआउट == 300 दिए गए बेलो के रूप में उपयोग किया, यह खोज प्रक्रिया को मार देता है लेकिन यह खुराक को मार देता है बोले कोड द्वारा बाल प्रक्रिया स्पॉन।/ऑटो को मारने की प्रक्रिया और पूल
कैसे मैं अपने बच्चे की प्रक्रिया के साथ पूल से माता-पिता की प्रक्रिया को मार सकता है:
मैं कई तरह से है, लेकिन कोई सफलता प्राप्त करने की कोशिश की? प्रोसेस एक्सप्लोरर में
import os
from multiprocessing import Pool
def runCmd(cmd):
lresult = os.popen(cmd).read()
return lresult
main():
p = Pool(4)
data_paths = [list of paths of store data]
search_cmds = [ "SearchText.exe %s < %s"%(data_path, filename) for data_path in data_paths ]
results = [p.apply_async(runCmd, (cmd,), callback = log_result) for cmd in search_cmds]
try:
for result in results:
root.append(result.get(timeout=300))
#rool holds the result of search process
except TimeoutError:
for c in multiprocessing.active_children():
print '----->',c.pid
os.kill(c.pid, signal.SIGTERM)
p.close()
p.join()
if __name__ == '__main__':
main()
प्रक्रिया ट्री:
cmd.exe
------python.exe
----------------python.exe
--------------------------cmd.exe
---------------------------------SearchText.exe
----------------python.exe
--------------------------cmd.exe
---------------------------------SearchText.exe
----------------python.exe
--------------------------cmd.exe
---------------------------------SearchText.exe
----------------python.exe
--------------------------cmd.exe
---------------------------------SearchText.exe
कोड स्निपेट के ऊपर dosnt मारने बच्चे प्रक्रिया
--------------------------cmd.exe
---------------------------------SearchText.exe
--------------------------cmd.exe
---------------------------------SearchText.exe
--------------------------cmd.exe
---------------------------------SearchText.exe
--------------------------cmd.exe
---------------------------------SearchText.exe
शोध बच्चे खोज प्रक्रिया को बनाए रखने के लिए, निम्न बच्चे प्रक्रिया भी मारे।
कृपया गिल्ड।
धन्यवाद
get_children अब मौजूद नहीं है , विधि को [बच्चों] कहा जाता है (http://pythonhosted.org/psutil/#psu til.Process.children) – user37203
मैंने डिमननाइजेशन का उपयोग किया, इसलिए यह दृष्टिकोण वही था जो मैं ढूंढ रहा था। – crsuarezf