dograh/api/services/campaign/readme.md
Abhishek 6827744327
fix: make campaign process batch thread safe (#141)
* fix: dont schedule new batch on resume

* fix: make process_batch thread safe
2026-01-30 14:48:00 +05:30

678 B

campaign_orchestrator.py (CampaignOrchestrator)

  • Listens to retry events, batch completed event, sync completed events from redis pubsub, and schedules batches
  • Monitors stale campaigns and schedules batches if one is not already scheduled
  • Marks campaign as completed if no more tasks pending

runner.py (CampaignRunnerService)

  • Service layer to handle router requests, like run campaign, pause campaign, resume campaign, get campaign status etc.

call_dispatcher.py (CampaignCallDispatcher)

  • Ensures rate limit and concurrency limits and dispatches call using telephony provider

campaign_tasks.py

  • sync campaign from source
  • process campaign batch