Search documentation of phoenix_kit

# PhoenixKit.Install.ObanConfig (phoenix_kit v1.7.87)

Copy Markdown View Source

Handles Oban configuration for PhoenixKit installation.

This module provides functionality to:

- Configure Oban for background job processing
- Set up required queues (default, file_processing)
- Add Oban.Plugins.Pruner for job cleanup
- Add Oban to application supervisor tree
- Ensure configuration exists during updates

## Summary

### Functions

add_oban_configuration(igniter)

Adds or verifies Oban configuration.

add_oban_supervisor(igniter)

Adds Oban to the parent application's supervision tree.

oban_config_exists?(igniter)

Checks if Oban configuration exists in config.exs.

oban_supervisor_exists?(igniter)

Checks if Oban supervisor is configured in application.ex.

## Functions

# add_oban_configuration(igniter)

Adds or verifies Oban configuration.

This function ensures that Oban is properly configured for PhoenixKit's background job processing, including:

1. Repo configuration (auto-detected from PhoenixKit config)
2. Required queues for file processing
3. Pruner plugin for automatic job cleanup

## Parameters

- `igniter` - The igniter context

## Returns

Updated igniter with Oban configuration and notices.

# add_oban_supervisor(igniter)

Adds Oban to the parent application's supervision tree.

This function ensures that Oban starts automatically when the application starts, with correct positioning in the supervisor tree:

- AFTER PhoenixKit.Supervisor (PhoenixKit services available)
- BEFORE Endpoint (Oban ready before HTTP requests)

## Important

Oban MUST start AFTER PhoenixKit.Supervisor because PhoenixKit.Supervisor depends on Repo, and Oban also depends on Repo. The correct order is:

1. Repo (database connection)
2. PhoenixKit.Supervisor (uses Repo for Settings)
3. Oban (uses Repo for job persistence)

## Parameters

- `igniter` - The igniter context

## Returns

Updated igniter with Oban added to application supervisor.

# oban_config_exists?(igniter)

Checks if Oban configuration exists in config.exs.

## Parameters

- `igniter` - The igniter context for detecting parent app name

## Returns

Boolean indicating if configuration exists.

# oban_supervisor_exists?(igniter)

Checks if Oban supervisor is configured in application.ex.

## Parameters

- `igniter` - The igniter context for detecting parent app name

## Returns

Boolean indicating if Oban supervisor exists in application.ex.