49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
# -*- coding: utf-8 -*-
 | 
						|
# Copyright 2012-2016 Camptocamp
 | 
						|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.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 NotReadableJobError(JobError):
 | 
						|
    """ The job cannot be read from the storage. """
 | 
						|
 | 
						|
 | 
						|
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(RetryableJobError, self).__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 """
 |