| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/19.0/queue_job |
| VERSION | |
| VERSION | 2.0.2 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Guewen Baconnier, Alexandre Fayolle, Weblate, OCA-git-bot, oca-ci, Fernando, Milan Topuzov |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:40:49 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
openupgradelib requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This addon adds an integrated Job Queue to Odoo.
It allows to postpone method calls executed asynchronously.
Jobs are executed in the background by a `Jobrunner`, in their own
transaction.
Example:
``` python
from odoo import models, fields, api
class MyModel(models.Model):
_name = 'my.model'
def my_method(self, a, k=None):
_logger.info('executed with a: %s and k: %s', a, k)
class MyOtherModel(models.Model):
_name = 'my.other.model'
def button_do_stuff(self):
self.env['my.model'].with_delay().my_method('a', k=2)
```
In the snippet of code above, when we call `button_do_stuff`, a job
**capturing the method and arguments** will be postponed. It will be
executed as soon as the Jobrunner has a free bucket, which can be
instantaneous if no other job is running.
Features:
- Views for jobs, jobs are stored in PostgreSQL
- Jobrunner: execute the jobs, highly efficient thanks to PostgreSQL's
NOTIFY
- Channels: give a capacity for the root channel and its sub-channels
and segregate jobs in them. Allow for instance to restrict heavy jobs
to be executed one at a time while little ones are executed 4 at a
times.
- Retries: Ability to retry jobs by raising a type of exception
- Retry Pattern: the 3 first tries, retry after 10 seconds, the 5 next
tries, retry after 1 minutes, ...
- Job properties: priorities, estimated time of arrival (ETA), custom
description, number of retries
- Related Actions: link an action on the job view, such as open the
record concerned by the job |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | list | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | list | New |
view_queue_job_graph |
queue.job.graph | queue.job | graph | New |
view_queue_job_pivot |
queue.job.pivot | queue.job | pivot | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | list | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_cancelled |
Cancel Jobs | queue.jobs.to.cancelled | form | New |
view_set_jobs_done |
Set Jobs to Done | queue.jobs.to.done | form | New |
No new fields.
Public methods (2)delayable(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
ttype
Selection
ondelete={'job_serialized': 'cascade'}
selection_add=[('job_serialized', 'Job Serialized')]
No public methods.
channel
Char
index=True
channel_method_name
Char
readonly=True
string='Complete Method Name'
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_cancelled
Datetime
readonly=True
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
exc_message
Char
readonly=True
string='Exception Message'
tracking=True
exc_name
Char
readonly=True
string='Exception'
exec_time
Float
aggregator='avg'
help='Time required to execute this job in seconds. Average when grouped.'
readonly=True
string='Execution Time (avg)'
func_string
Char
readonly=True
string='Task'
graph_jobs_count
Integer
compute='_compute_graph_jobs_count'
graph_uuid
Char
help='Single shared identifier of a Graph. Empty for a single job.'
index=True
readonly=True
string='Graph UUID'
identity_key
Char
readonly=True
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
readonly=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
aggregator=False
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
worker_pid
Integer
readonly=True
autovacuum(self)
button_cancelled(self)
button_done(self)
create(self, vals_list)
init(self)
open_graph_jobs(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
recursive=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
create(self, vals_list)
parent_required(self)
write(self, values)
allow_commit
Boolean
help='Allows the job to commit transactions during execution. Under the hood, this executes the job in a new database cursor, which incurs an overhead as it requires an extra connection to the database. '
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=<expr>
required=True
string='Channel'
edit_related_action
Text
compute='_compute_edit_related_action'
help='The action when the button *Related Action* is used on a job. The default action is to open the view of the record related to the job. Configured as a dictionary with optional keys: enable, func_name, kwargs.\nSee the module description for details.'
inverse='_inverse_edit_related_action'
string='Related Action'
edit_retry_pattern
Text
compute='_compute_edit_retry_pattern'
help='Pattern expressing from the count of retries on retryable errors, the number of of seconds to postpone the next execution. Setting the number of seconds to a 2-element tuple or list will randomize the retry interval between the 2 values.\nExample: {1: 10, 5: 20, 10: 30, 15: 300}.\nExample: {1: (1, 10), 5: (11, 20), 10: (21, 30), 15: (100, 300)}.\nSee the module description for details.'
inverse='_inverse_edit_retry_pattern'
string='Retry Pattern'
method
Char
model_id
Many2one → ir.model
comodel_name='ir.model'
ondelete='cascade'
string='Model'
name
Char
compute='_compute_name'
index=True
inverse='_inverse_name'
store=True
create(self, vals_list)
job_config(self, name)
job_default_config(self)
job_function_name(model_name, method_name)
unlink(self)
write(self, values)
queue_job_id
Many2one → queue.job
comodel_name='queue.job'
index=True
ondelete='cascade'
required=True
No public methods.
No new fields.
Public methods (1)set_cancelled(self)
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=<expr>
string='Jobs'
requeue(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/18.0/queue_job |
| VERSION | |
| VERSION | 3.1.3 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Guewen Baconnier, Alexandre Fayolle, GitHub, Lois Rilo, Florent Xicluna, Thomas Binsfeld, Weblate, OCA-git-bot, Simone Orsi, oca-ci, Adam Heinz, Vincent Hatakeyama, Zina Rasoamanana, oca-git-bot, Andrii9090-tecnativa, Florian Mounier, thien, RLeeOSI, hoangtrann |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:14 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This addon adds an integrated Job Queue to Odoo.
It allows to postpone method calls executed asynchronously.
Jobs are executed in the background by a `Jobrunner`, in their own
transaction.
Example:
``` python
from odoo import models, fields, api
class MyModel(models.Model):
_name = 'my.model'
def my_method(self, a, k=None):
_logger.info('executed with a: %s and k: %s', a, k)
class MyOtherModel(models.Model):
_name = 'my.other.model'
def button_do_stuff(self):
self.env['my.model'].with_delay().my_method('a', k=2)
```
In the snippet of code above, when we call `button_do_stuff`, a job
**capturing the method and arguments** will be postponed. It will be
executed as soon as the Jobrunner has a free bucket, which can be
instantaneous if no other job is running.
Features:
- Views for jobs, jobs are stored in PostgreSQL
- Jobrunner: execute the jobs, highly efficient thanks to PostgreSQL's
NOTIFY
- Channels: give a capacity for the root channel and its sub-channels
and segregate jobs in them. Allow for instance to restrict heavy jobs
to be executed one at a time while little ones are executed 4 at a
times.
- Retries: Ability to retry jobs by raising a type of exception
- Retry Pattern: the 3 first tries, retry after 10 seconds, the 5 next
tries, retry after 1 minutes, ...
- Job properties: priorities, estimated time of arrival (ETA), custom
description, number of retries
- Related Actions: link an action on the job view, such as open the
record concerned by the job |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | list | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | list | New |
view_queue_job_graph |
queue.job.graph | queue.job | graph | New |
view_queue_job_pivot |
queue.job.pivot | queue.job | pivot | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | list | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_cancelled |
Cancel Jobs | queue.jobs.to.cancelled | form | New |
view_set_jobs_done |
Set Jobs to Done | queue.jobs.to.done | form | New |
No new fields.
Public methods (2)delayable(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
ttype
Selection
ondelete={'job_serialized': 'cascade'}
selection_add=[('job_serialized', 'Job Serialized')]
No public methods.
channel
Char
index=True
channel_method_name
Char
readonly=True
string='Complete Method Name'
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_cancelled
Datetime
readonly=True
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
exc_message
Char
readonly=True
string='Exception Message'
tracking=True
exc_name
Char
readonly=True
string='Exception'
exec_time
Float
aggregator='avg'
help='Time required to execute this job in seconds. Average when grouped.'
readonly=True
string='Execution Time (avg)'
func_string
Char
readonly=True
string='Task'
graph_jobs_count
Integer
compute='_compute_graph_jobs_count'
graph_uuid
Char
help='Single shared identifier of a Graph. Empty for a single job.'
index=True
readonly=True
string='Graph UUID'
identity_key
Char
readonly=True
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
readonly=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
aggregator=False
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
worker_pid
Integer
readonly=True
autovacuum(self)
button_cancelled(self)
button_done(self)
create(self, vals_list)
init(self)
open_graph_jobs(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
recursive=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
create(self, vals_list)
parent_required(self)
unlink(self)
write(self, values)
allow_commit
Boolean
help='Allows the job to commit transactions during execution. Under the hood, this executes the job in a new database cursor, which incurs an overhead as it requires an extra connection to the database. '
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=<expr>
required=True
string='Channel'
edit_related_action
Text
compute='_compute_edit_related_action'
help='The action when the button *Related Action* is used on a job. The default action is to open the view of the record related to the job. Configured as a dictionary with optional keys: enable, func_name, kwargs.\nSee the module description for details.'
inverse='_inverse_edit_related_action'
string='Related Action'
edit_retry_pattern
Text
compute='_compute_edit_retry_pattern'
help='Pattern expressing from the count of retries on retryable errors, the number of of seconds to postpone the next execution. Setting the number of seconds to a 2-element tuple or list will randomize the retry interval between the 2 values.\nExample: {1: 10, 5: 20, 10: 30, 15: 300}.\nExample: {1: (1, 10), 5: (11, 20), 10: (21, 30), 15: (100, 300)}.\nSee the module description for details.'
inverse='_inverse_edit_retry_pattern'
string='Retry Pattern'
method
Char
model_id
Many2one → ir.model
comodel_name='ir.model'
ondelete='cascade'
string='Model'
name
Char
compute='_compute_name'
index=True
inverse='_inverse_name'
store=True
create(self, vals_list)
job_config(self, name)
job_default_config(self)
job_function_name(model_name, method_name)
unlink(self)
write(self, values)
queue_job_id
Many2one → queue.job
comodel_name='queue.job'
index=True
ondelete='cascade'
required=True
No public methods.
No new fields.
Public methods (1)set_cancelled(self)
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=<expr>
string='Jobs'
requeue(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/17.0/queue_job |
| VERSION | |
| VERSION | 1.5.3 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Guewen Baconnier, Alexandre Fayolle, Pedro M. Baeza, GitHub, Lois Rilo, Florent Xicluna, JordiMForgeFlow, Thomas Binsfeld, Weblate, OCA-git-bot, Iván Todorovich, oca-ci, GuillemCForgeFlow, François Degrave, Jose Zambudio, matthieu.saison, thien, chien, Bastian Guenther, maso, Mauro Cebriá Berbegal |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This addon adds an integrated Job Queue to Odoo.
It allows to postpone method calls executed asynchronously.
Jobs are executed in the background by a `Jobrunner`, in their own
transaction.
Example:
``` python
from odoo import models, fields, api
class MyModel(models.Model):
_name = 'my.model'
def my_method(self, a, k=None):
_logger.info('executed with a: %s and k: %s', a, k)
class MyOtherModel(models.Model):
_name = 'my.other.model'
def button_do_stuff(self):
self.env['my.model'].with_delay().my_method('a', k=2)
```
In the snippet of code above, when we call `button_do_stuff`, a job
**capturing the method and arguments** will be postponed. It will be
executed as soon as the Jobrunner has a free bucket, which can be
instantaneous if no other job is running.
Features:
- Views for jobs, jobs are stored in PostgreSQL
- Jobrunner: execute the jobs, highly efficient thanks to PostgreSQL's
NOTIFY
- Channels: give a capacity for the root channel and its sub-channels
and segregate jobs in them. Allow for instance to restrict heavy jobs
to be executed one at a time while little ones are executed 4 at a
times.
- Retries: Ability to retry jobs by raising a type of exception
- Retry Pattern: the 3 first tries, retry after 10 seconds, the 5 next
tries, retry after 1 minutes, ...
- Job properties: priorities, estimated time of arrival (ETA), custom
description, number of retries
- Related Actions: link an action on the job view, such as open the
record concerned by the job |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | tree | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | tree | New |
view_queue_job_graph |
queue.job.graph | queue.job | graph | New |
view_queue_job_pivot |
queue.job.pivot | queue.job | pivot | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | tree | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_cancelled |
Cancel Jobs | queue.jobs.to.cancelled | form | New |
view_set_jobs_done |
Set Jobs to Done | queue.jobs.to.done | form | New |
No new fields.
Public methods (2)delayable(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
ttype
Selection
ondelete={'job_serialized': 'cascade'}
selection_add=[('job_serialized', 'Job Serialized')]
No public methods.
channel
Char
index=True
channel_method_name
Char
readonly=True
string='Complete Method Name'
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_cancelled
Datetime
readonly=True
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
exc_message
Char
readonly=True
string='Exception Message'
tracking=True
exc_name
Char
readonly=True
string='Exception'
exec_time
Float
group_operator='avg'
help='Time required to execute this job in seconds. Average when grouped.'
string='Execution Time (avg)'
func_string
Char
readonly=True
string='Task'
graph_jobs_count
Integer
compute='_compute_graph_jobs_count'
graph_uuid
Char
help='Single shared identifier of a Graph. Empty for a single job.'
index=True
readonly=True
string='Graph UUID'
identity_key
Char
readonly=True
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
readonly=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
group_operator=False
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
worker_pid
Integer
readonly=True
autovacuum(self)
button_cancelled(self)
button_done(self)
create(self, vals_list)
init(self)
open_graph_jobs(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
recursive=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
create(self, vals_list)
parent_required(self)
unlink(self)
write(self, values)
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=<expr>
required=True
string='Channel'
edit_related_action
Text
compute='_compute_edit_related_action'
help='The action when the button *Related Action* is used on a job. The default action is to open the view of the record related to the job. Configured as a dictionary with optional keys: enable, func_name, kwargs.\nSee the module description for details.'
inverse='_inverse_edit_related_action'
string='Related Action'
edit_retry_pattern
Text
compute='_compute_edit_retry_pattern'
help='Pattern expressing from the count of retries on retryable errors, the number of of seconds to postpone the next execution. Setting the number of seconds to a 2-element tuple or list will randomize the retry interval between the 2 values.\nExample: {1: 10, 5: 20, 10: 30, 15: 300}.\nExample: {1: (1, 10), 5: (11, 20), 10: (21, 30), 15: (100, 300)}.\nSee the module description for details.'
inverse='_inverse_edit_retry_pattern'
string='Retry Pattern'
method
Char
model_id
Many2one → ir.model
comodel_name='ir.model'
ondelete='cascade'
string='Model'
name
Char
compute='_compute_name'
index=True
inverse='_inverse_name'
store=True
create(self, vals_list)
job_config(self, name)
job_default_config(self)
job_function_name(model_name, method_name)
unlink(self)
write(self, values)
queue_job_id
Many2one → queue.job
comodel_name='queue.job'
index=True
ondelete='cascade'
required=True
No public methods.
No new fields.
Public methods (1)set_cancelled(self)
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=<expr>
string='Jobs'
requeue(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/16.0/queue_job |
| VERSION | |
| VERSION | 3.0.1 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Guewen Baconnier, Alexandre Fayolle, Stefan Rijnhart, GitHub, Jairo Llopis, Laurent Mignon (ACSONE), Denis Roussel, Enric Tobella, Florent Xicluna, Miquel Raïch, Sébastien Alix, Thomas Binsfeld, Hugo Santos, Florian da Costa, Weblate, OCA-git-bot, Simone Orsi, Tom, oca-ci, Benoit Aimont, Eduardo De Miguel, duongtq, Zina Rasoamanana, François Degrave, Florian Mounier, thien, Simó Albert i Beltran, pol, Bastian Guenther, Ross Golder |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:50 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | tree | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | tree | New |
view_queue_job_graph |
queue.job.graph | queue.job | graph | New |
view_queue_job_pivot |
queue.job.pivot | queue.job | pivot | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | tree | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_cancelled |
Cancel Jobs | queue.jobs.to.cancelled | form | New |
view_set_jobs_done |
Set Jobs to Done | queue.jobs.to.done | form | New |
No new fields.
Public methods (2)delayable(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
ttype
Selection
ondelete={'job_serialized': 'cascade'}
selection_add=[('job_serialized', 'Job Serialized')]
No public methods.
channel
Char
index=True
channel_method_name
Char
readonly=True
string='Complete Method Name'
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_cancelled
Datetime
readonly=True
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
exc_message
Char
readonly=True
string='Exception Message'
tracking=True
exc_name
Char
readonly=True
string='Exception'
exec_time
Float
group_operator='avg'
help='Time required to execute this job in seconds. Average when grouped.'
readonly=True
string='Execution Time (avg)'
func_string
Char
readonly=True
string='Task'
graph_jobs_count
Integer
compute='_compute_graph_jobs_count'
graph_uuid
Char
help='Single shared identifier of a Graph. Empty for a single job.'
index=True
readonly=True
string='Graph UUID'
identity_key
Char
readonly=True
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
readonly=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
group_operator=False
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
worker_pid
Integer
readonly=True
autovacuum(self)
button_cancelled(self)
button_done(self)
create(self, vals_list)
init(self)
open_graph_jobs(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
recursive=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
create(self, vals_list)
name_get(self)
parent_required(self)
unlink(self)
write(self, values)
allow_commit
Boolean
help='Allows the job to commit transactions during execution. Under the hood, this executes the job in a new database cursor, which incurs an overhead as it requires an extra connection to the database. '
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=<expr>
required=True
string='Channel'
edit_related_action
Text
compute='_compute_edit_related_action'
help='The action when the button *Related Action* is used on a job. The default action is to open the view of the record related to the job. Configured as a dictionary with optional keys: enable, func_name, kwargs.\nSee the module description for details.'
inverse='_inverse_edit_related_action'
string='Related Action'
edit_retry_pattern
Text
compute='_compute_edit_retry_pattern'
help='Pattern expressing from the count of retries on retryable errors, the number of of seconds to postpone the next execution. Setting the number of seconds to a 2-element tuple or list will randomize the retry interval between the 2 values.\nExample: {1: 10, 5: 20, 10: 30, 15: 300}.\nExample: {1: (1, 10), 5: (11, 20), 10: (21, 30), 15: (100, 300)}.\nSee the module description for details.'
inverse='_inverse_edit_retry_pattern'
string='Retry Pattern'
method
Char
model_id
Many2one → ir.model
comodel_name='ir.model'
ondelete='cascade'
string='Model'
name
Char
compute='_compute_name'
index=True
inverse='_inverse_name'
store=True
create(self, vals_list)
job_config(self, name)
job_default_config(self)
job_function_name(model_name, method_name)
unlink(self)
write(self, values)
queue_job_id
Many2one → queue.job
comodel_name='queue.job'
index=True
ondelete='cascade'
required=True
No public methods.
No new fields.
Public methods (1)set_cancelled(self)
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=<expr>
string='Jobs'
requeue(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/15.0/queue_job |
| VERSION | |
| VERSION | 2.3.13 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Guewen Baconnier, Alexandre Fayolle, GitHub, Jairo Llopis, Enric Tobella, Ivàn Todorovich, Florent Xicluna, OCA Transbot, Miquel Raïch, Sébastien Alix, Weblate, OCA-git-bot, Hans Henrik Gabelgaard, Simone Orsi, oca-ci, Adam Heinz, François Degrave, Simó Albert i Beltran, pcastelovigo |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:36 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | tree | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | tree | New |
view_queue_job_graph |
queue.job.graph | queue.job | graph | New |
view_queue_job_pivot |
queue.job.pivot | queue.job | pivot | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | tree | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_cancelled |
Cancel Jobs | queue.jobs.to.cancelled | form | New |
view_set_jobs_done |
Set Jobs to Done | queue.jobs.to.done | form | New |
No new fields.
Public methods (2)delayable(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
ttype
Selection
ondelete={'job_serialized': 'cascade'}
selection_add=[('job_serialized', 'Job Serialized')]
No public methods.
channel
Char
index=True
channel_method_name
Char
readonly=True
string='Complete Method Name'
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_cancelled
Datetime
readonly=True
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
exc_message
Char
readonly=True
string='Exception Message'
tracking=True
exc_name
Char
readonly=True
string='Exception'
exec_time
Float
group_operator='avg'
help='Time required to execute this job in seconds. Average when grouped.'
string='Execution Time (avg)'
func_string
Char
readonly=True
string='Task'
graph_jobs_count
Integer
compute='_compute_graph_jobs_count'
graph_uuid
Char
help='Single shared identifier of a Graph. Empty for a single job.'
index=True
readonly=True
string='Graph UUID'
identity_key
Char
readonly=True
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
readonly=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
worker_pid
Integer
readonly=True
autovacuum(self)
button_cancelled(self)
button_done(self)
create(self, vals_list)
init(self)
open_graph_jobs(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
requeue_stuck_jobs(self, enqueued_delta=1, started_delta=0)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
recursive=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
create(self, vals_list)
name_get(self)
parent_required(self)
unlink(self)
write(self, values)
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=<expr>
required=True
string='Channel'
edit_related_action
Text
compute='_compute_edit_related_action'
help='The action when the button *Related Action* is used on a job. The default action is to open the view of the record related to the job. Configured as a dictionary with optional keys: enable, func_name, kwargs.\nSee the module description for details.'
inverse='_inverse_edit_related_action'
string='Related Action'
edit_retry_pattern
Text
compute='_compute_edit_retry_pattern'
help='Pattern expressing from the count of retries on retryable errors, the number of of seconds to postpone the next execution. Setting the number of seconds to a 2-element tuple or list will randomize the retry interval between the 2 values.\nExample: {1: 10, 5: 20, 10: 30, 15: 300}.\nExample: {1: (1, 10), 5: (11, 20), 10: (21, 30), 15: (100, 300)}.\nSee the module description for details.'
inverse='_inverse_edit_retry_pattern'
string='Retry Pattern'
method
Char
model_id
Many2one → ir.model
comodel_name='ir.model'
ondelete='cascade'
string='Model'
name
Char
compute='_compute_name'
index=True
inverse='_inverse_name'
store=True
create(self, vals_list)
job_config(self, name)
job_default_config(self)
job_function_name(model_name, method_name)
unlink(self)
write(self, values)
No new fields.
Public methods (1)set_cancelled(self)
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=<expr>
string='Jobs'
requeue(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/14.0/queue_job |
| VERSION | |
| VERSION | 3.15.1 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Guewen Baconnier, Sylvain LE GAL, GitHub, Moisés López, Enric Tobella, Yann Papouin, Pierre Verkest, Florent Xicluna, OCA Transbot, Miquel Raïch, Víctor Martínez, Sébastien Alix, Sébastien BEAU, Florian da Costa, oca-travis, Weblate, OCA-git-bot, Simone Orsi, hparfr, Pieter Paulussen, François Honoré, Fernanda Hernández, oca-ci, davidborromeo, David James, fshah, Hai Lang, oca-git-bot, Núria Sancho, Dũng (Trần Đình), Florian Mounier, Ashish Hirpara, Quoc Duong, inigogr, Edi Santoso, Simó Albert i Beltran |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:03 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
queue_job_assets |
queue.job.assets | ir.ui.view | qweb | Inherits web.assets_backend |
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | tree | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | tree | New |
view_queue_job_graph |
queue.job.graph | queue.job | graph | New |
view_queue_job_pivot |
queue.job.pivot | queue.job | pivot | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | tree | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_cancelled |
Cancel Jobs | queue.jobs.to.cancelled | form | New |
view_set_jobs_done |
Set Jobs to Done | queue.jobs.to.done | form | New |
No new fields.
Public methods (2)delayable(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
ttype
Selection
ondelete={'job_serialized': 'cascade'}
selection_add=[('job_serialized', 'Job Serialized')]
No public methods.
channel
Char
index=True
channel_method_name
Char
readonly=True
string='Complete Method Name'
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_cancelled
Datetime
readonly=True
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
exc_message
Char
readonly=True
string='Exception Message'
tracking=True
exc_name
Char
readonly=True
string='Exception'
exec_time
Float
group_operator='avg'
help='Time required to execute this job in seconds. Average when grouped.'
string='Execution Time (avg)'
func_string
Char
readonly=True
string='Task'
graph_jobs_count
Integer
compute='_compute_graph_jobs_count'
graph_uuid
Char
help='Single shared identifier of a Graph. Empty for a single job.'
index=True
readonly=True
string='Graph UUID'
identity_key
Char
readonly=True
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
readonly=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
group_operator=False
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
worker_pid
Integer
readonly=True
autovacuum(self)
button_cancelled(self)
button_done(self)
create(self, vals_list)
init(self)
open_graph_jobs(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
requeue_stuck_jobs(self, enqueued_delta=5, started_delta=0)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
create(self, vals_list)
name_get(self)
parent_required(self)
unlink(self)
write(self, values)
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=<expr>
required=True
string='Channel'
edit_related_action
Text
compute='_compute_edit_related_action'
help='The action when the button *Related Action* is used on a job. The default action is to open the view of the record related to the job. Configured as a dictionary with optional keys: enable, func_name, kwargs.\nSee the module description for details.'
inverse='_inverse_edit_related_action'
string='Related Action'
edit_retry_pattern
Text
compute='_compute_edit_retry_pattern'
help='Pattern expressing from the count of retries on retryable errors, the number of of seconds to postpone the next execution. Setting the number of seconds to a 2-element tuple or list will randomize the retry interval between the 2 values.\nExample: {1: 10, 5: 20, 10: 30, 15: 300}.\nExample: {1: (1, 10), 5: (11, 20), 10: (21, 30), 15: (100, 300)}.\nSee the module description for details.'
inverse='_inverse_edit_retry_pattern'
string='Retry Pattern'
method
Char
model_id
Many2one → ir.model
comodel_name='ir.model'
ondelete='cascade'
string='Model'
name
Char
compute='_compute_name'
index=True
inverse='_inverse_name'
store=True
create(self, vals_list)
job_config(self, name)
job_default_config(self)
job_function_name(model_name, method_name)
unlink(self)
write(self, values)
No new fields.
Public methods (1)set_cancelled(self)
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=<expr>
string='Jobs'
requeue(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/13.0/queue_job |
| VERSION | |
| VERSION | 3.11.3 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Guewen Baconnier, Pedro M. Baeza, GitHub, Denis Roussel, Enric Tobella, Nils Hamerlinck, sbejaoui, OCA Transbot, Miquel Raïch, oca-travis, Weblate, OCA-git-bot, Miku Laitinen, Simone Orsi, Ethan Hildick, Jaime Arroyo, Tatiana Deribina, Paul, Eugene Molotov, Vincent Hatakeyama |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:15 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | tree | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | tree | New |
view_queue_job_graph |
queue.job.graph | queue.job | graph | New |
view_queue_job_pivot |
queue.job.pivot | queue.job | pivot | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | tree | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_done |
Set Jobs to Done | queue.jobs.to.done | form | New |
No new fields.
Public methods (1)with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
ttype
Selection
selection_add=[('job_serialized', 'Job Serialized')]
No public methods.
channel
Char
index=True
channel_method_name
Char
readonly=True
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
exc_message
Char
readonly=True
string='Exception Message'
tracking=True
exc_name
Char
readonly=True
string='Exception'
exec_time
Float
group_operator='avg'
help='Time required to execute this job in seconds. Average when grouped.'
string='Execution Time (avg)'
func_string
Char
readonly=True
string='Task'
identity_key
Char
readonly=True
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
readonly=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
worker_pid
Integer
readonly=True
autovacuum(self)
button_done(self)
create(self, vals_list)
init(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
requeue_stuck_jobs(self, enqueued_delta=5, started_delta=0)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
create(self, vals_list)
name_get(self)
parent_required(self)
unlink(self)
write(self, values)
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=<expr>
required=True
string='Channel'
edit_related_action
Text
compute='_compute_edit_related_action'
help='The action when the button *Related Action* is used on a job. The default action is to open the view of the record related to the job. Configured as a dictionary with optional keys: enable, func_name, kwargs.\nSee the module description for details.'
inverse='_inverse_edit_related_action'
string='Related Action'
edit_retry_pattern
Text
compute='_compute_edit_retry_pattern'
help='Pattern expressing from the count of retries on retryable errors, the number of of seconds to postpone the next execution.\nExample: {1: 10, 5: 20, 10: 30, 15: 300}.\nSee the module description for details.'
inverse='_inverse_edit_retry_pattern'
string='Retry Pattern'
method
Char
model_id
Many2one → ir.model
comodel_name='ir.model'
ondelete='cascade'
string='Model'
name
Char
compute='_compute_name'
index=True
inverse='_inverse_name'
store=True
create(self, vals_list)
job_config(self, name)
job_default_config(self)
job_function_name(model_name, method_name)
unlink(self)
write(self, values)
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=<expr>
string='Jobs'
requeue(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/12.0/queue_job |
| VERSION | |
| VERSION | 4.1.0 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Stéphane Bidoul, Guewen Baconnier, Stefan Rijnhart, eLBati, Holger Brunn, Maxime Chambreuil, Sylvain LE GAL, GitHub, Denis Roussel, Enric Tobella, Uku Lagle, Stéphane Bidoul (ACSONE), Nils Hamerlinck, sbejaoui, OCA Transbot, Miquel Raïch, Thomas Binsfeld, Jordi Riera, oca-travis, Weblate, OCA-git-bot, Simone Orsi, oca-ci, Jaime Arroyo, duongtq, OCA git bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:20 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
queue_job_assets |
queue.job.assets | ir.ui.view | qweb | Inherits web.assets_backend |
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | tree | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | tree | New |
view_queue_job_graph |
queue.job.graph | queue.job | graph | New |
view_queue_job_pivot |
queue.job.pivot | queue.job | pivot | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | tree | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_cancelled |
Cancel Jobs | queue.jobs.to.cancelled | form | New |
view_set_jobs_done |
Set Jobs to Done | queue.jobs.to.done | form | New |
No new fields.
Public methods (2)delayable(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
ttype
Selection
selection_add=[('job_serialized', 'Job Serialized')]
No public methods.
channel
Char
index=True
channel_method_name
Char
readonly=True
string='Complete Method Name'
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_cancelled
Datetime
readonly=True
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
exc_message
Char
readonly=True
string='Exception Message'
track_visibility='onchange'
exc_name
Char
readonly=True
string='Exception'
exec_time
Float
group_operator='avg'
help='Time required to execute this job in seconds. Average when grouped.'
string='Execution Time (avg)'
func_string
Char
readonly=True
string='Task'
graph_jobs_count
Integer
compute='_compute_graph_jobs_count'
graph_uuid
Char
help='Single shared identifier of a Graph. Empty for a single job.'
index=True
readonly=True
string='Graph UUID'
identity_key
Char
readonly=True
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
readonly=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
worker_pid
Integer
readonly=True
autovacuum(self)
button_cancelled(self)
button_done(self)
create(self, vals_list)
init(self)
open_graph_jobs(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
requeue_stuck_jobs(self, enqueued_delta=5, started_delta=0)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
create(self, vals_list)
name_get(self)
parent_required(self)
unlink(self)
write(self, values)
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=_default_channel
required=True
string='Channel'
edit_related_action
Text
compute='_compute_edit_related_action'
help='The action when the button *Related Action* is used on a job. The default action is to open the view of the record related to the job. Configured as a dictionary with optional keys: enable, func_name, kwargs.\nSee the module description for details.'
inverse='_inverse_edit_related_action'
string='Related Action'
edit_retry_pattern
Text
compute='_compute_edit_retry_pattern'
help='Pattern expressing from the count of retries on retryable errors, the number of of seconds to postpone the next execution.\nExample: {1: 10, 5: 20, 10: 30, 15: 300}.\nSee the module description for details.'
inverse='_inverse_edit_retry_pattern'
string='Retry Pattern'
method
Char
model_id
Many2one → ir.model
comodel_name='ir.model'
ondelete='cascade'
string='Model'
name
Char
compute='_compute_name'
index=True
inverse='_inverse_name'
store=True
create(self, vals_list)
job_config(self, name)
job_default_config(self)
job_function_name(model_name, method_name)
unlink(self)
write(self, values)
No new fields.
Public methods (1)set_cancelled(self)
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=_default_job_ids
string='Jobs'
requeue(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/queue |
| GIT | |
| GIT | https://github.com/OCA/queue.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/queue/tree/11.0/queue_job |
| VERSION | |
| VERSION | 1.4.0 |
| CATEGORY | |
| CATEGORY | Generic Modules |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Camptocamp, ACSONE SA/NV |
| COMMITTERS | |
| COMMITTERS | Guewen Baconnier, Leonardo Pistone, Pedro M. Baeza, GitHub, Stéphane Bidoul (ACSONE), Nils Hamerlinck, OCA Transbot, Graeme Gellatly, oca-travis, OCA-git-bot, Tom Blauwendraat, Simone Orsi, Sylvain GARANCHER, OCA Git Bot, François Honoré, JesusVMayor, Bob Leers |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/queue/queue_job |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:59 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - base - base_setup - web - bus - web_tour - base_sparse_field |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES |
requests |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | tree | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | tree | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | tree | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_done |
Requeue Jobs | queue.jobs.to.done | form | New |
No new fields.
Public methods (1)with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
channel
Char
compute='_compute_channel'
index=True
inverse='_inverse_channel'
store=True
channel_method_name
Char
compute='_compute_job_function'
readonly=True
store=True
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
func_string
Char
compute='_compute_func_string'
readonly=True
store=True
string='Task'
identity_key
Char
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
compute='_compute_job_function'
readonly=True
store=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
result
Text
readonly=True
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
required=True
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
autovacuum(self)
button_done(self)
init(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
requeue_stuck_jobs(self, enqueued_delta=5, started_delta=0)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
name_get(self)
parent_required(self)
unlink(self)
write(self, values)
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=_default_channel
required=True
string='Channel'
name
Char
index=True
No public methods.
No new fields.
Public methods (1)set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=_default_job_ids
string='Jobs'
requeue(self)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_queue_job_channel_form |
queue.job.channel.form | queue.job.channel | form | New |
view_queue_job_channel_search |
queue.job.channel.search | queue.job.channel | search | New |
view_queue_job_channel_tree |
queue.job.channel.tree | queue.job.channel | tree | New |
view_queue_job_form |
queue.job.form | queue.job | form | New |
view_queue_job_function_form |
queue.job.function.form | queue.job.function | form | New |
view_queue_job_function_search |
queue.job.function.search | queue.job.function | search | New |
view_queue_job_function_tree |
queue.job.function.tree | queue.job.function | tree | New |
view_queue_job_search |
queue.job.search | queue.job | search | New |
view_queue_job_tree |
queue.job.tree | queue.job | tree | New |
view_requeue_job |
Requeue Jobs | queue.requeue.job | form | New |
view_set_jobs_done |
Requeue Jobs | queue.jobs.to.done | form | New |
No new fields.
Public methods (1)with_delay(self, priority=None, eta=None, max_retries=None, description=None, channel=None, identity_key=None)
channel
Char
compute='_compute_channel'
index=True
inverse='_inverse_channel'
store=True
channel_method_name
Char
compute='_compute_job_function'
readonly=True
store=True
company_id
Many2one → res.company
comodel_name='res.company'
index=True
string='Company'
date_created
Datetime
readonly=True
string='Created Date'
date_done
Datetime
readonly=True
string='Date Done'
date_enqueued
Datetime
readonly=True
string='Enqueue Time'
date_started
Datetime
readonly=True
string='Start Date'
eta
Datetime
string='Execute only after'
exc_info
Text
readonly=True
string='Exception Info'
func_string
Char
compute='_compute_func_string'
readonly=True
store=True
string='Task'
identity_key
Char
job_function_id
Many2one → queue.job.function
comodel_name='queue.job.function'
compute='_compute_job_function'
readonly=True
store=True
string='Job Function'
max_retries
Integer
help='The job will fail if the number of tries reach the max. retries.\nRetries are infinite when empty.'
string='Max. retries'
method_name
Char
readonly=True
model_name
Char
readonly=True
string='Model'
name
Char
readonly=True
string='Description'
priority
Integer
record_ids
Serialized
readonly=True
result
Text
readonly=True
string='Result'
retry
Integer
string='Current try'
state
Selection
index=True
readonly=True
required=True
string='State'
args: STATES
user_id
Many2one → res.users
comodel_name='res.users'
required=True
string='User ID'
uuid
Char
index=True
readonly=True
required=True
string='UUID'
action_done(self, reason=None)
autovacuum(self)
button_done(self)
button_done_ask_reason(self)
init(self)
open_related_action(self)
related_action_open_record(self)
requeue(self)
requeue_stuck_jobs(self, enqueued_delta=5, started_delta=0)
write(self, vals)
complete_name
Char
compute='_compute_complete_name'
readonly=True
store=True
string='Complete Name'
job_function_ids
One2many → queue.job.function
comodel_name='queue.job.function'
inverse_name='channel_id'
string='Job Functions'
name
Char
parent_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
ondelete='restrict'
string='Parent Channel'
removal_interval
Integer
default=<expr>
required=True
name_get(self)
parent_required(self)
unlink(self)
write(self, values)
channel
Char
readonly=True
related='channel_id.complete_name'
store=True
channel_id
Many2one → queue.job.channel
comodel_name='queue.job.channel'
default=_default_channel
required=True
string='Channel'
name
Char
index=True
No public methods.
reason
Text
string='Reason to set to done'
set_done(self)
job_ids
Many2many → queue.job
comodel_name='queue.job'
default=_default_job_ids
string='Jobs'
requeue(self)