Skip to content

Jobs vs Apps

Container Apps and Container Apps Jobs share the same environment capabilities, but they solve different workload shapes.

Main Content

Decision matrix

Decision area Container Apps Job Container App
Lifetime Bounded execution with a start and finish Continuous process that can stay warm
Trigger Manual, schedule, or event-driven execution creation Ingress traffic or scaler-driven replica changes
Processing style One-shot pull and exit Continuous consumption or request serving
Best fit Batch, replay, reconciliation, queue drains APIs, background workers, long-lived consumers
Replay model Start a new execution Keep serving with scaled replicas
Operational artifact Execution history Revision/replica state

Cost model framing

Use this simple operator model:

  • Jobs concentrate cost into execution windows.
  • Apps can still scale to zero in some designs, but they are optimized for a continuously available service or worker model.

This page uses an operator cost model, not a billing quote

Actual billing depends on plan, workload profile, resource sizing, and execution duration. Confirm pricing with the current Azure Container Apps pricing documentation before making a cost commitment.

When Jobs are the better choice

Use Jobs when:

  • Completion matters more than low-latency warm handling.
  • The workload can cleanly start, process, and exit.
  • Operators need explicit replay and execution history.

When Apps are the better choice

Use Apps when:

  • The workload must stay ready for inbound requests.
  • You need persistent worker connections or warm caches.
  • Scaling should add or remove replicas of a continuously running process.

Event-driven Jobs vs event-driven apps

For event processing:

  • Job: create an execution, pull a bounded work unit, exit.
  • App: keep a worker process alive and scale that worker fleet up or down.

Choose Jobs when each event batch should map to a discrete run. Choose apps when the worker should keep polling or receiving continuously.

Decision tree

flowchart TD
    A[New workload] --> B{Must stay available for inbound requests?}
    B -->|Yes| C[Use Container App]
    B -->|No| D{Does work have a clear finish boundary?}
    D -->|No| C
    D -->|Yes| E{Do you want a discrete execution record and replay model?}
    E -->|Yes| F[Use Container Apps Job]
    E -->|No| G{Will a warm continuous worker improve throughput materially?}
    G -->|Yes| C
    G -->|No| F

See Also

Sources