def METHOD_NAME(self, job, queue):
    def job_done(child):
        self.children.remove(child)
        self.did_perform_work = True
        self.heartbeat()
        if job.get_status() == JobStatus.FINISHED:
            queue.enqueue_dependents(job)
    child_greenlet = self.gevent_pool.spawn(self.perform_job, job, queue)
    child_greenlet.link(job_done)
    self.children.append(child_greenlet)