| title | Cron Jobs |
|---|---|
| description | Schedule and manage periodic workloads on Qovery |
Cron Jobs in Qovery are Kubernetes workloads that run on a regular schedule. They are perfect for recurring tasks such as pulling data from external services periodically or processing accumulated data.
Common Use Cases:
- Pull data from external APIs at regular intervals
- Process and transform database data
- Generate scheduled reports
- Clean up old records
- Perform database backups
- Run maintenance scripts
- Cron jobs deployed before the nodepool was enabled will not run on it until they are redeployed.
- Cron jobs deployed while the nodepool was enabled will stay in
Pendingif the nodepool is later disabled and they are not redeployed.
There is no automatic fallback to the default node pool. Always redeploy your cron jobs after touching this setting.
Qovery supports two deployment sources for Cron Jobs:
Qovery pulls your code from a Git repository, builds the application, and deploys it to your Kubernetes cluster.
Supported Providers: GitHub, GitLab, Bitbucket
Qovery pulls a pre-built container image from your configured registry and deploys it to your Kubernetes cluster.
The tag `latest` is not supported. Please use a specific tag for container images. Choose **Git Repository** or **Container Registry** as your deployment source **For Git Repository**: - Select Git provider - Choose repository - Select branch - Specify root path (if not at repository root) - Configure Dockerfile path**For Container Registry**:
- Select configured registry
- Enter image name
- Specify image tag (not `latest`)
Name: Unique identifier for your Cron Job within the environment
Source Configuration:
- Git: Provider, repository, branch, root path, Dockerfile
- Registry: Image name and specific tag
CRON Schedule: Define when your job should run using CRON syntax:
* * * * *
│ │ │ │ │
│ │ │ │ └── Day of week (0-7)
│ │ │ └──── Month (1-12)
│ │ └────── Day of month (1-31)
│ └──────── Hour (0-23)
└────────── Minute (0-59)
Common Examples:
*/5 * * * *- Every 5 minutes0 * * * *- Every hour0 0 * * *- Daily at midnight0 2 * * 0- Weekly on Sunday at 2 AM
Timezone: Set the timezone for your CRON schedule (default: UTC)
Entrypoint: Override the default container entrypoint if needed
CMD Arguments: Provide command-line arguments to pass to the container
Restart Policy:
- Never: Job runs once per schedule (recommended for Cron Jobs)
- OnFailure: Automatically restart if job fails
Max Duration: Maximum execution time before the job is terminated (in seconds)
Port: Configure if your job exposes a port for health checks
- vCPU: CPU allocation in millicores (default: 500m)
- Memory: RAM allocation (default: 512MB)
Configure optional health checks:
- Liveness Probe: Determines if container should be restarted
- Readiness Probe: Determines if container is ready to execute
Control when deployments should be triggered:
- File path filters: Deploy only when specific files change
- Branch filters: Deploy only from specific branches
Manually trigger a Cron Job execution outside its schedule:
Go to your Cron Job in the Qovery console Click the **Play** button or **Force Run** action View real-time logs and verify successful completion Force Run executions do not affect the regular schedule. The job will still run at its next scheduled time.You can create a clone of the service via the clone feature. A new service with the same configuration will be created into the target environment.
Go to the Cron Job you want to clone Click on the **three dots button** and select **Clone** Choose the target environment where you want to clone the service The target environment can be the same as the current environment or a different one in a completely different project.To delete a Cron Job:
- Navigate to the Cron Job settings
- Click the three-dot menu → Delete
- Confirm deletion