Exemplo n.º 1
0
    def test_redis_heartbeat_job(self):
        heartbeat = RedisHeartBeat(job=1)
        self.assertEqual(heartbeat.redis_key, RedisHeartBeat.KEY_JOB.format(1))
        self.assertEqual(heartbeat.is_alive(), False)
        self.assertEqual(RedisHeartBeat.job_is_alive(1), False)

        heartbeat.ping()
        self.assertEqual(heartbeat.is_alive(), True)
        self.assertEqual(RedisHeartBeat.job_is_alive(1), True)

        heartbeat.clear()
        self.assertEqual(heartbeat.is_alive(), False)
        self.assertEqual(RedisHeartBeat.job_is_alive(1), False)

        RedisHeartBeat.job_ping(1)
        self.assertEqual(heartbeat.is_alive(), True)
        self.assertEqual(RedisHeartBeat.job_is_alive(1), True)
Exemplo n.º 2
0
def jobs_check_heartbeat(job_id):
    if RedisHeartBeat.job_is_alive(job_id=job_id):
        return

    job = get_valid_job(job_id=job_id)
    if not job:
        return

    # Job is zombie status
    job.set_status(JobLifeCycle.FAILED,
                   message='Job is in zombie state (no heartbeat was reported).')
Exemplo n.º 3
0
 def test_post_internal_job_heartbeat(self):
     self.assertEqual(RedisHeartBeat.job_is_alive(self.job.id), False)
     resp = self.internal_client.post(self.url)
     assert resp.status_code == status.HTTP_200_OK
     self.assertEqual(RedisHeartBeat.job_is_alive(self.job.id), True)