OdooWiki OCA HUB

Queue Job Cron Jobrunner

queue_job_cron_jobrunner folder_open OCA/queue open_in_new
Others License: AGPL-3

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.0

Lets 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.job model. 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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 5 confirmed, 4 with no information of 9 versions.

terminal Installation and usage

OCA documentation · Odoo 18.0

Warning

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_cron cron record as many times as needed, until you have as much records as cron workers.

No verified information in OCA: Installation, Usage.

info

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.