Background jobs are processed by SolidQueue and defined in app/jobs/. Recurring schedules are configured in config/recurring.yml.
Job categories
Daily jobs
These jobs run once per day:
Scrape timing: The nightly scrape runs at 10pm ET. Avoid deploying between 10pm-10:15pm ET to prevent sync interruption.
Frequent jobs
These jobs run multiple times per day:
Key job implementations
Metrics::SyncJob
The main scraping job that syncs creator content daily:
Brands::PipelineAutoAdvanceJob
Automatically advances brands through pipeline stages:
Creators::WelcomeDmBackstopJob
Ensures welcome DMs are delivered within 15 minutes:
Job configuration
Jobs are configured in config/recurring.yml:
Queue management
Queue names
Priority
Error handling
Jobs use standard Rails error handling:
Monitoring
Sync health
Metrics::SyncWatchdogJob monitors sync health:
- Checks for stuck syncs
- Alerts via Slack when issues detected
- Pings Rafael and Brandon on outages
Kill switch
If the sync is causing issues:
Running jobs locally
Testing jobs
Jobs are tested in test/jobs/: