Skip to content

Add Oban for background job processing #27

@elias-ba

Description

@elias-ba

Summary

Set up Oban for reliable background job processing.

Use Cases

  • Email notifications
  • Slack notifications
  • GitHub API sync
  • Deadline reminders
  • Scheduled sprint actions
  • Webhook processing

Setup

```elixir

mix.exs

{:oban, "~> 2.17"}

config/config.exs

config :estim, Oban,
repo: Estim.Repo,
queues: [
default: 10,
notifications: 20,
github_sync: 5,
slack: 10
],
plugins: [
Oban.Plugins.Pruner,
{Oban.Plugins.Cron, crontab: [
{"0 9 * * 1-5", Estim.Workers.DeadlineReminder},
]}
]
```

Job Modules

  • `NotificationWorker` - Email/Slack notifications
  • `GitHubSyncWorker` - Sync issues from GitHub
  • `DeadlineReminderWorker` - Sprint deadline reminders
  • `WebhookWorker` - Process incoming webhooks

Monitoring

  • Add Oban Web dashboard (optional)
  • Set up error alerting
  • Configure job retention

Acceptance Criteria

  • Oban configured and running
  • At least one job type working
  • Failed jobs retry appropriately
  • Old jobs pruned automatically

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions