У меня есть сценарий питона, который выглядит следующим образом:завершить все процессы в пуле
import os
import tempfile
from multiprocessing import Pool
def runReport(a, b, c):
# do task.
temp_dir = tempfile.gettempdir()
if (os.path.isfile(temp_dir + "/stop_check")):
# How to terminate all processes in the pool here?
def runReports(args):
return runReport(*args)
def main(argv):
pool = Pool(4)
args = []
# Code to generate args. args is an array of tuples of form (a, b, c)
pool.map(runReports, args)
if (__name__ == '__main__'):
main(sys.argv[1:])
Там есть еще один питон скрипт, который создает этот файл/TMP/stop_check. Когда этот файл создается, мне нужно завершить пул. Как я могу это достичь?
Вы спрашиваете: «Как прекратить многопроцессорное обслуживание?»? или «Как прослушать событие создания файла?» – ThinkChaos
'pool.terminate()' завершает процессы в пуле. – Jeff
@plg Я очень новичок в python, я пробовал передать пул функции runReport, чтобы я мог называть 'pool.terminate()' там. Но я не мог этого сделать, потому что пул не умеет мариновать. Мне нужно найти способ вызвать 'pool.terminate()' при создании файла/tmp/stop_check. – Pankaj