Skip to main content

Overview

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

Deployment Sources

Qovery supports two deployment sources for Cron Jobs:

Git Repository

Qovery pulls your code from a Git repository, builds the application, and deploys it to your Kubernetes cluster. Supported Providers: GitHub, GitLab, Bitbucket

Container Registry

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.

Creating a Cron Job

1

Select Source

Choose Git Repository or Container Registry as your deployment source
2

Configure 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)
3

Configure Job Settings

  • CRON Schedule: Define when the job should run
  • Timezone: Set timezone for schedule
  • Entrypoint: Override container entrypoint (optional)
  • CMD Arguments: Provide command arguments (optional)
  • Restart Policy: Configure failure handling
  • Max Duration: Set execution timeout
  • Port: Configure if job exposes a port (optional)
4

Configure Resources

  • vCPU: Default 500m (0.5 cores)
  • RAM: Default 512MB
5

Environment Variables

Configure environment variables for your job
6

Review and Deploy

Review configuration and click Create to deploy

Configuration

General Settings

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

Job Configuration

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 minutes
  • 0 * * * * - Every hour
  • 0 0 * * * - Daily at midnight
  • 0 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

Resources

  • vCPU: CPU allocation in millicores (default: 500m)
  • Memory: RAM allocation (default: 512MB)

Health Checks

Configure optional health checks:
  • Liveness Probe: Determines if container should be restarted
  • Readiness Probe: Determines if container is ready to execute

Deployment Restrictions

Control when deployments should be triggered:
  • File path filters: Deploy only when specific files change
  • Branch filters: Deploy only from specific branches

Force Run

Manually trigger a Cron Job execution outside its schedule:
1

Navigate to Job

Go to your Cron Job in the Qovery console
2

Click Play Button

Click the Play button or Force Run action
3

Monitor Execution

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.

Clone Service

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

Select Job

Go to the Cron Job you want to clone
2

Clone Job

Click on the three dots button and select Clone
3

Select Target Environment

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.

Delete Cron Job

To delete a Cron Job:
  1. Navigate to the Cron Job settings
  2. Click the three-dot menu → Delete
  3. Confirm deletion
Deleting a Cron Job is permanent and cannot be undone.

Lifecycle Jobs

Run jobs triggered by environment lifecycle events

Environment Variables

Manage configuration and secrets for your jobs

Container Registry

Configure registries for container-based jobs

Advanced Settings

Configure advanced job options