Skip to content
This repository has been archived by the owner on Jun 5, 2023. It is now read-only.

retry wont work if retry_timeout not set, is this intentional? #145

Open
thisiswei opened this issue Nov 1, 2015 · 0 comments
Open

retry wont work if retry_timeout not set, is this intentional? #145

thisiswei opened this issue Nov 1, 2015 · 0 comments

Comments

@thisiswei
Copy link

    def retry(self, payload_class, args):
        """This method provides a way to retry a job after a failure.
        If the jobclass defined by the payload containes a ``retry_every`` attribute then pyres
        will attempt to retry the job until successful or until timeout defined by ``retry_timeout`` on the payload class.
        """
        retry_every = getattr(payload_class, 'retry_every', None)
        retry_timeout = getattr(payload_class, 'retry_timeout', 0)

        if retry_every:
            now = ResQ._current_time()
            first_attempt = self._payload.get("first_attempt", now)
            retry_until = first_attempt + timedelta(seconds=retry_timeout)
            retry_at = now + timedelta(seconds=retry_every)
            if retry_at < retry_until:
                self.resq.enqueue_at(retry_at, payload_class, *args,
                        **{'first_attempt':first_attempt})
                return True
        return False

if the Job_Class only define retry_every but not retry_timeout the if retry_at < retry_until: will always be False since it defaulted to 0, maybe we should default it to retry forever when timeout not set?

thisiswei@4d9b096
https://github.com/binarydud/pyres/blob/master/pyres/job.py#L111-L129

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant