MCPcopy
hub / github.com/celery/celery / shutdown_nodes

Method shutdown_nodes

celery/apps/multi.py:456–483  ·  view source on GitHub ↗
(self, nodes, sig=signal.SIGTERM, retry=None)

Source from the content-addressed store, hash-verified

454 maybe_call(on_down, node)
455
456 def shutdown_nodes(self, nodes, sig=signal.SIGTERM, retry=None):
457 P = set(nodes)
458 maybe_call(self.on_stopping_preamble, nodes)
459 to_remove = set()
460 for node in P:
461 maybe_call(self.on_send_signal, node, signal_name(sig))
462 if not node.send(sig, self.on_node_signal_dead):
463 to_remove.add(node)
464 yield node
465 P -= to_remove
466 if retry:
467 maybe_call(self.on_still_waiting_for, P)
468 its = 0
469 while P:
470 to_remove = set()
471 for node in P:
472 its += 1
473 maybe_call(self.on_still_waiting_progress, P)
474 if not node.alive():
475 maybe_call(self.on_node_shutdown_ok, node)
476 to_remove.add(node)
477 yield node
478 maybe_call(self.on_still_waiting_for, P)
479 break
480 P -= to_remove
481 if P and not its % len(P):
482 sleep(float(retry))
483 maybe_call(self.on_still_waiting_end)
484
485 def find(self, name):
486 for node in self:

Callers 1

_stop_nodesMethod · 0.95

Calls 5

signal_nameFunction · 0.90
maybe_callFunction · 0.85
sendMethod · 0.45
addMethod · 0.45
aliveMethod · 0.45

Tested by

no test coverage detected