##// END OF EJS Templates
use KM.client() method in ConsoleApp
use KM.client() method in ConsoleApp

File last commit:

r10295:42734e89
r10307:a66af94c
Show More
restarter.py
62 lines | 1.9 KiB | text/x-python | PythonLexer
Brian E. Granger
Adding KerelRestarter.
r10278 """A basic in process kernel monitor with autorestarting.
This watches a kernel's state using KernelManager.is_alive and auto
restarts the kernel if it dies.
"""
#-----------------------------------------------------------------------------
# Copyright (C) 2013 The IPython Development Team
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#-----------------------------------------------------------------------------
#-----------------------------------------------------------------------------
# Imports
#-----------------------------------------------------------------------------
Brian Granger
Adding absolute import to kernelrestarter.
r10281 from __future__ import absolute_import
Brian E. Granger
Adding KerelRestarter.
r10278 import zmq
from zmq.eventloop import ioloop
MinRK
cleanup boundaries of MultiKernelManager and KernelRestarter classes...
r10295 from IPython.kernel.restarter import KernelRestarter
Brian E. Granger
Adding KerelRestarter.
r10278 from IPython.utils.traitlets import (
MinRK
cleanup boundaries of MultiKernelManager and KernelRestarter classes...
r10295 Instance, Float, List,
Brian E. Granger
Adding KerelRestarter.
r10278 )
#-----------------------------------------------------------------------------
# Code
#-----------------------------------------------------------------------------
MinRK
cleanup boundaries of MultiKernelManager and KernelRestarter classes...
r10295 class IOLoopKernelRestarter(KernelRestarter):
Brian E. Granger
Adding KerelRestarter.
r10278 """Monitor and autorestart a kernel."""
loop = Instance('zmq.eventloop.ioloop.IOLoop', allow_none=False)
def _loop_default(self):
return ioloop.IOLoop.instance()
time_to_dead = Float(3.0, config=True,
help="""Kernel heartbeat interval in seconds."""
)
Brian Granger
More work on autorestarting.
r10280 _pcallback = None
Brian E. Granger
Adding KerelRestarter.
r10278 def start(self):
Brian Granger
More work on autorestarting.
r10280 """Start the polling of the kernel."""
if self._pcallback is None:
self._pcallback = ioloop.PeriodicCallback(
MinRK
cleanup boundaries of MultiKernelManager and KernelRestarter classes...
r10295 self.poll, 1000*self.time_to_dead, self.loop
Brian Granger
More work on autorestarting.
r10280 )
self._pcallback.start()
def stop(self):
"""Stop the kernel polling."""
if self._pcallback is not None:
self._pcallback.stop()
Brian E. Granger
Adding KerelRestarter.
r10278
Brian Granger
More work on autorestarting.
r10280 def clear(self):
"""Clear the underlying PeriodicCallback."""
self.stop()
MinRK
cleanup boundaries of MultiKernelManager and KernelRestarter classes...
r10295 self._pcallback = None