This module implements a simple queue.job runner using ir.cron triggers.
It's meant to be used on environments where the regular job runner can't be run, like on Odoo.sh.
Unlike the regular job runner, where jobs are dispatched to the HttpWorkers, jobs are processed on the CronWorker threads by the job runner crons. This is a design decision because:
- Odoo.sh puts HttpWorkers to sleep when there's no network activity
- HttpWorkers are meant for traffic. Users shouldn't pay the price of background tasks.
For now, it only implements the most basic features of the queue_job runner, notably no channel capacity nor priorities. Please check the ROADMAP for further details.
auto_awesome What this module does
AI-generated from the code · Odoo 18.0Lets Odoo process background jobs (queue jobs) through scheduled actions instead of a dedicated job runner, which is useful on hosting platforms where the normal runner cannot run.
This module changes how background jobs are executed in Odoo. Normally, queue jobs are handled by a separate job runner process. With this module, they are picked up and processed by scheduled actions (cron jobs) instead.
- A new checkbox "Queue Job Runner" appears on scheduled action forms when the action targets the
queue.jobmodel. When checked, that scheduled action is treated as a job runner. - The module installs a scheduled action named "Queue Job Runner" that runs once a day by default, but it is also triggered automatically whenever a new job is created or when a job's state or scheduled time changes.
- Jobs are processed one at a time in order of priority and creation date. If a job fails, it is marked as failed; if it can be retried, it is postponed and tried again later.
- After a job finishes, any jobs that depend on it are automatically enqueued.
This module only implements basic job running. It does not support channel capacity or priorities beyond the basic ordering. It is meant for environments like Odoo.sh where the regular job runner cannot be used.
Depends on
Models and fields (2)
- ir.cron · extends an existing modelqueue_job_runner
- queue.job · extends an existing model
Text generated by AI (DeepSeek) from reading the Odoo 18.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 5 confirmed, 4 with no information of 9 versions.
Sources · Odoo 17.0
Confirmed on 2026-11-03 in branch 17.0 of OCA/queue.
terminal Installation and usage
OCA documentation · Odoo 18.0Configuration
Source · Odoo 18.0Warning
Don't use this module if you're already running the regular queue_job runner.
For the easiest case, no configuration is required besides installing the module.
To avoid CronWorker CPU timeout from abruptly stopping the job processing cron, it's recommended to launch Odoo with --limit-time-real-cron=0, to disable the CronWorker timeout altogether.
Note
In Odoo.sh, this is done by default.
Parallel execution of jobs can be achieved by leveraging multiple ir.cron records:
- Make sure you have enough CronWorkers available (Odoo CLI
--max-cron-threads) - Duplicate the
queue_job_croncron record as many times as needed, until you have as much records as cron workers.
No verified information in OCA: Installation, Usage.
Installation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.