##// END OF EJS Templates
add Edit Notebook Metadata to Edit menu
add Edit Notebook Metadata to Edit menu

File last commit:

r9190:20a102a5
r12913:46dd2590
Show More
wmanager.py
44 lines | 1.1 KiB | text/x-python | PythonLexer
"""Mock workflow manager.
This is a mock work manager whose submitted 'jobs' simply consist of executing
a python string. What we want is to see the implementation of the ipython
controller part.
"""
from __future__ import print_function
import atexit
import sys
from subprocess import Popen
def cleanup(controller, engines):
"""Cleanup routine to shut down all subprocesses we opened."""
import signal, time
print('Starting cleanup')
print('Stopping engines...')
for e in engines:
e.send_signal(signal.SIGINT)
print('Stopping controller...')
# so it can shut down its queues
controller.send_signal(signal.SIGINT)
time.sleep(0.1)
print('Killing controller...')
controller.kill()
print('Cleanup done')
if __name__ == '__main__':
# Start controller in separate process
cont = Popen(['python', '-m', 'IPython.parallel.ipcontrollerapp'])
print('Started controller')
# "Submit jobs"
eng = []
for i in range(4):
eng.append(Popen(['python', 'job_wrapper.py','x=%s' % i]))
# Ensure that all subpro
atexit.register(lambda : cleanup(cont, eng))