May-27-2018, 02:18 PM
Hi,
I had a python script which runs the processes in parallel in a pool of 3.
Is there any way to restart these process automatically after the pool of processes got completed?
Please help
I had a python script which runs the processes in parallel in a pool of 3.
Is there any way to restart these process automatically after the pool of processes got completed?
Please help
from multiprocessing import Pool
import glob
import os
import csv
from threading import Thread
from multiprocessing import Pool as ThreadPool
import time
items = ['ACM','ACX','AW','BC','XU0', 'DRM', 'DHD', 'CR', 'GSK', 'DMS', 'BLS']
work = (["A", 5], ["B", 5], ["C", 5], ["D", 5],["E", 5], ["F", 5], ["G", 5], ["H", 5])
def work_log(work_data):
print(" Process %s waiting %s seconds" % (work_data[0], work_data[1]))
time.sleep(int(work_data[1]))
print(" Process %s Finished." % work_data[0])
items = ['ACM','ACX','AW','BC','XU0', 'DRM', 'DHD', 'CR', 'GSK', 'DMS', 'BLS']
for item in items:
try:
print item
except:
print('error with pattern')
def pool_handler():
p = Pool(3)
p.map(work_log, work)
if __name__ == '__main__':
pool_handler()Output:[root@edgenode]# python d4.py
Process A waiting 5 seconds
Process B waiting 5 seconds
Process C waiting 5 seconds
Process A Finished.
ACM
ACX
AW
BC
XU0
DRM
DHD
CR
GSK
DMS
BLS
Process D waiting 5 seconds
Process B Finished.
Process C Finished.
ACM
ACM
ACX
ACX
AW
AW
BC
BC
XU0
XU0
DRM
DRM
DHD
DHD
CR
CR
GSK
GSK
DMS
DMS
BLS
BLS
Process E waiting 5 seconds
Process F waiting 5 seconds
Process D Finished.
ACM
ACX
AW
BC
XU0
DRM
DHD
CR
GSK
DMS
BLS
Process G waiting 5 seconds
Process E Finished.
ACM
ACX
AW
BC
XU0
DRM
DHD
CR
GSK
DMS
BLS
Process H waiting 5 seconds
Process F Finished.
ACM
ACX
AW
BC
XU0
DRM
DHD
CR
GSK
DMS
BLS
Process G Finished.
ACM
ACX
AW
BC
XU0
DRM
DHD
CR
GSK
DMS
BLS
Process H Finished.
ACM
ACX
AW
BC
XU0
DRM
DHD
CR
GSK
DMS
BLS
