Deltatech Queue Job Enhancements
by Terrabit https://www.terrabit.ro , Dorin Hongu https://www.terrabit.ro| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 4161 |
| Technical Name |
deltatech_queue_job |
| License | AGPL-3 |
| Website | https://www.terrabit.ro |
| Versions | 16.0 17.0 18.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
Discuss (mail)
|
| Community Apps Dependencies | Show |
| Lines of code | 4161 |
| Technical Name |
deltatech_queue_job |
| License | AGPL-3 |
| Website | https://www.terrabit.ro |
| Versions | 16.0 17.0 18.0 |
Deltatech Queue Job Enhancements

The module provides specific enhancements to the job queue functionality in Odoo, focusing on performance, reliability, and flexibility in job execution. Here’s a detailed breakdown of the features: deltatech_queue_job
Key Features
- Optimized Concurrency and Locking:
- Implements a specialized method (_acquire_specific_job) using the FOR NO KEY UPDATE SKIP LOCKED SQL clause. This allows multiple workers (internal cron or external API) to process the queue simultaneously without blocking each other, significantly increasing throughput.
- Robust Transactional Processing:
- Job execution is wrapped in database savepoints. If a job fails, only its changes are rolled back, preserving the state of the database for subsequent jobs in the same batch.
- Includes automatic handling of typical database concurrency errors (like serialization failures), ensuring jobs are gracefully rescheduled.
- Flexible Job Runners:
- Internal Cron Runner: An enhanced _job_runner that respects configurable limits for batch size and execution time, preventing worker timeouts on platforms like Odoo.sh.
- External API Runner: A dedicated endpoint (/api/v1/queue/process) designed for external trigger services (e.g., cron-job.org). This allows for processing intervals as frequent as every minute, bypassing the standard 5-minute Odoo cron limitation.
- Threaded Processing: Ability to launch an API-style runner in a dedicated background thread directly from the Odoo UI, useful for immediate manual processing without blocking the web interface.
- Smart Auto-Triggering:
- Automatically creates cron triggers (ir.cron.trigger) whenever a job is created or its scheduled time (eta) is updated. This ensures that processing starts as soon as a job becomes eligible, rather than waiting for the next scheduled cron run.
- Centralized Configuration:
- A dedicated settings page under Queue Job > Settings allows
administrators to:
- Generate and manage secure API keys for external access.
- Define Batch Size (maximum jobs per run).
- Set Max Seconds (time budget per execution) to ensure stability.
- A dedicated settings page under Queue Job > Settings allows
administrators to:
- Enhanced Monitoring and UI:
- Integrated notifications (Client Actions) that provide real-time feedback when jobs are triggered or processed.
- Improved list views for jobs, including creation dates and easier access to manual processing actions.
- Buttons for “Cron Trigger”, “Process”, and “Process Background” are always accessible from the job list header.
Optimized for Odoo.sh
This module is specifically designed to address common challenges on the Odoo.sh platform:
- Bypassing the 5-Minute Cron Limit: Using an external trigger service (like cron-job.org) via the API endpoint allows for job processing every minute, providing near real-time execution.
- Preventing Worker Timeouts: Configurable time budgets (Max Seconds) ensure that the job runner finishes its work gracefully before Odoo.sh kills the worker process, avoiding database inconsistencies.
- High Concurrency: The use of SKIP LOCKED ensures that multiple workers can process the queue in parallel without deadlocks, maximizing the use of available resources.
- Transactional Safety: Savepoints isolate individual job failures, ensuring that one failing job doesn’t roll back the entire batch.
Performance Benefits
This module is essential for high-volume Odoo environments. By decoupling the job runner from the standard Odoo cron schedule and providing optimized database locking, it ensures that your background tasks are processed as fast as possible with minimal overhead and maximum reliability.
Important
This is an alpha version, the data model and design can change at any time without warning. Only for development or testing purpose, do not use in production. More details on development status
Table of contents
Usage
External Job Processor Configuration
To process jobs every minute using an external service like [cron-job.org](https://cron-job.org):
1. **Configure API Key**: Go to `Queue Job` -> `Settings` menu. You can generate a secure key using the **Generate Key** button.
2. **Configure Batch Settings**: (Optional) Adjust **Batch Size** (default 20) and **Max Seconds** (default 50) directly in the same settings screen.
3. **Setup cron-job.org**:
* **URL**: `https://your-odoo-domain.com/api/v1/queue/process`
* **Method**: POST
* **Schedule**: Every minute (`* * * * *`)
* **Headers**: `Content-Type: application/json`
* **Body**:
```json
{
"jsonrpc": "2.0",
"params": {
"api_key": "YOUR_SECURE_KEY_HERE"
}
}
```
API Endpoints
~~~~~~~~~~~~~
Process Queue (External)
^^^^^^^^^^^^^^^^^^^^^^^^
**POST** `/api/v1/queue/process`
Parameters:
- `api_key` (required): Authentication key
- `batch_size` (optional): Maximum number of jobs to process (default: 20)
- `max_seconds` (optional): Maximum processing time in seconds (default: 50)
Response:
```json
{
"status": "success",
"processed": 15,
"failed": 0,
"pending_count": 10,
"time_elapsed": 12.34,
"timestamp": "2026-03-18 04:40:00"
}
```
Manual Processing
~~~~~~~~~~~~~~~~~
You can manually trigger job processing from the Queue Job list view using the **Process** button (internal cron trigger) or **Process (Thread)** (API-style runner in a new thread), or trigger a background execution using **Cron Trigger**.
Bug Tracker
Bugs are tracked on Terrabit Issues. In case of trouble, please check there if your issue has already been reported.
Do not contact contributors directly about support or help with technical issues.
Credits
Authors
- Terrabit
- Dorin Hongu
Maintainers
Current maintainer:

This module is part of the dhongu/deltatech project on GitHub.
You are welcome to contribute.
Please log in to comment on this module