diff --git a/addons/queue_job/exception.py b/addons/queue_job/exception.py new file mode 100644 index 0000000..093344e --- /dev/null +++ b/addons/queue_job/exception.py @@ -0,0 +1,43 @@ +# Copyright 2012-2016 Camptocamp +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html) + + +class BaseQueueJobError(Exception): + """Base queue job error""" + + +class JobError(BaseQueueJobError): + """A job had an error""" + + +class NoSuchJobError(JobError): + """The job does not exist.""" + + +class FailedJobError(JobError): + """A job had an error having to be resolved.""" + + +class RetryableJobError(JobError): + """A job had an error but can be retried. + + The job will be retried after the given number of seconds. If seconds is + empty, it will be retried according to the ``retry_pattern`` of the job or + by :const:`odoo.addons.queue_job.job.RETRY_INTERVAL` if nothing is defined. + + If ``ignore_retry`` is True, the retry counter will not be increased. + """ + + def __init__(self, msg, seconds=None, ignore_retry=False): + super().__init__(msg) + self.seconds = seconds + self.ignore_retry = ignore_retry + + +# TODO: remove support of NothingToDo: too dangerous +class NothingToDoJob(JobError): + """The Job has nothing to do.""" + + +class ChannelNotFound(BaseQueueJobError): + """A channel could not be found"""