def job_delayed(self, job, queue):
        """
        Called if a job, before trying to run it, has the "delayed" status, or,
        after run, if its status was set to "delayed"
        If delayed_until was not set, or is invalid, set it to 60sec in the future
        """
        delayed_until = job.delayed_until.hget()
        if delayed_until:
            try:
                delayed_until = compute_delayed_until(delayed_until=parse(delayed_until))
            except (ValueError, TypeError):
                delayed_until = None

        if not delayed_until:
            # by default delay it for 60 seconds
            delayed_until = compute_delayed_until(delayed_for=60)

        job.enqueue_or_delay(
            queue_name=queue._cached_name,
            delayed_until=delayed_until,
            queue_model=queue.__class__,
        )

        self.log(self.job_delayed_message(job, queue), level='warning')

        if hasattr(job, 'on_delayed'):
            job.on_delayed(queue)
def job_delayed ( self , job , queue ) : delayed_until = job . delayed_until . hget ( ) if delayed_until : try : delayed_until = compute_delayed_until ( delayed_until = parse ( delayed_until ) ) except ( ValueError , TypeError ) : delayed_until = None if not delayed_until : delayed_until = compute_delayed_until ( delayed_for = 60 ) job . enqueue_or_delay ( queue_name = queue . _cached_name , delayed_until = delayed_until , queue_model = queue . __class__ , ) self . log ( self . job_delayed_message ( job , queue ) , level = 'warning' ) if hasattr ( job , 'on_delayed' ) : job . on_delayed ( queue )
Called if a job, before trying to run it, has the "delayed" status, or,
        after run, if its status was set to "delayed"
        If delayed_until was not set, or is invalid, set it to 60sec in the future