Esempio n. 1
0
    def test_jobs_check_heartbeat(self):
        job1 = JobFactory()
        JobStatusFactory(job=job1, status=JobLifeCycle.RUNNING)
        RedisHeartBeat.job_ping(job_id=job1.id)
        job2 = JobFactory()
        JobStatusFactory(job=job2, status=JobLifeCycle.RUNNING)

        jobs_check_heartbeat(job1.id)
        job1.refresh_from_db()
        self.assertEqual(job1.last_status, JobLifeCycle.RUNNING)

        jobs_check_heartbeat(job2.id)
        job2.refresh_from_db()
        self.assertEqual(job2.last_status, JobLifeCycle.FAILED)
Esempio n. 2
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)
Esempio n. 3
0
 def post(self, request, *args, **kwargs):
     RedisHeartBeat.job_ping(job_id=self.job.id)
     return Response(status=status.HTTP_200_OK)
Esempio n. 4
0
 def _ping_heartbeat(self) -> None:
     RedisHeartBeat.job_ping(self.id)