Exemplo n.º 1
0
	def on_stone_received(self, stone):
		pid_file = tempfile.mktemp()
		stone = pickle.loads(stone)
		logging.getLogger(__name__).info("received %s task from broker" % stone.name)
		child_pid = os.fork()
		time.sleep(0.1)
		if not child_pid:
			#child
			logging.getLogger(__name__).debug("started child %s" % os.getpid())
			s = Sisyphus(stone, pid_file, ttl=SISYPHUS_JOIN_TTL, logger=logging.getLogger(__name__))
			s.run()
			time.sleep(0.1)
		else:
			#master
			t = Terminator(child_pid, pid_file, ttl=SISYPHUS_WORKER_TTL)
			t.start()
			time.sleep(0.1)