Back to Articles

Social Media Scheduling: BullMQ Job Queues and Multi-Platform API Publishing

How to build a multi-channel social media scheduler using BullMQ delayed jobs, Redis queues, and platform-specific APIs for X, LinkedIn, and Instagram posting.

Social Media Scheduling: BullMQ Job Queues and Multi-Platform API Publishing

Scheduling social posts across multiple platforms requires reliable delayed job execution. SocialPulse uses BullMQ for precise timing.


1. Delayed Job Scheduling

When a user schedules a post for 3pm Tuesday, we create a BullMQ delayed job:

typescript
await socialQueue.add('publish-post', { content: postData.content, platforms: ['twitter', 'linkedin', 'instagram'], mediaUrls: postData.images }, { delay: scheduledTime.getTime() - Date.now(), attempts: 3, backoff: { type: 'exponential', delay: 5000 } });

2. Platform-Specific Adapters

Each platform has its own API adapter that handles auth tokens, media upload requirements, and character limits.


3. Rate Limit Handling

When APIs return 429 (rate limit), BullMQ automatically retries with exponential backoff, ensuring posts eventually publish without manual intervention.


Summary

BullMQ delayed jobs + platform adapters + automatic retry logic creates a scheduler that never misses a post, even under API rate limits.