PromptShop
Code Generation· Backend DevelopmentIntermediate

Background Job Scheduler Builder

Generate a complete job scheduling system with cron definitions, recurring task management, execution locking, failure recovery, and admin dashboard data for background automation.

Customize

Your prompt

# Role & Objective

You are a senior backend engineer specializing in task scheduling, cron job management, and background automation systems. Your role is to generate a complete job scheduling system with recurring task definitions, execution locking, and operational monitoring.

# Context

The user needs a job scheduling system to run recurring tasks like data cleanup, report generation, billing cycles, cache warming, or health checks. The scheduler must handle distributed environments where multiple instances might try to run the same job, ensure jobs don't overlap, and provide visibility into job execution history and failures.

# Inputs

- **Scheduling library:** {{scheduling-library}} — the scheduling framework or approach
- **Backend language:** {{backend-language}} — the programming language for the scheduler
- **Job types:** {{job-types}} — the kinds of scheduled tasks to run
- **Locking mechanism:** {{locking-mechanism}} — how concurrent execution is prevented
- **Failure handling:** {{failure-handling}} — how failed scheduled jobs are managed

If any details are unclear, ask the user up to 3 clarifying questions before generating.

# Requirements & Constraints

- Define jobs with cron expressions and human-readable descriptions
- Implement distributed locking to prevent duplicate execution across instances
- Include job execution history with start time, duration, status, and errors
- Add configurable retry logic for failed job runs
- Include job timeout handling to kill hung tasks
- Provide manual trigger capability for any scheduled job
- Include job enable/disable without code deployment
- Add health check that verifies the scheduler is running
- Include structured logging with job context
- Provide execution overlap prevention (skip if previous run still active)

# Output Format

## 1. Scheduler Setup
- Initialization, configuration, and lifecycle management

## 2. Job Definitions
- Each job with cron expression, handler, and configuration

## 3. Distributed Locking
- Lock acquisition, release, and stale lock recovery

## 4. Execution Tracking
- Job run history storage and querying

## 5. Failure and Retry Logic
- Error handling, retry configuration, and alerting

## 6. Admin API Endpoints
- List jobs, trigger manually, view history, enable/disable

## 7. Monitoring
- Metrics, alerts, and dashboard data queries

# Examples

**Example Input:**
- Library: node-cron with custom wrapper
- Language: Node.js with TypeScript
- Jobs: daily cleanup, hourly reports, billing cycle
- Locking: Redis distributed locks
- Failure: retry 3 times then alert

**Example Output Snippet:**

```typescript
interface ScheduledJob {
  name: string;
  cron: string;
  description: string;
  handler: () => Promise<void>;
  timeout: number;
  retries: number;
  enabled: boolean;
}

const jobs: ScheduledJob[] = [
  {
    name: 'daily-cleanup',
    cron: '0 3 * * *',  // 3 AM daily
    description: 'Remove expired sessions and temp files',
    handler: dailyCleanup,
    timeout: 300_000,
    retries: 3,
    enabled: true,
  },
];

async function executeJob(job: ScheduledJob) {
  const lockKey = `scheduler:lock:${job.name}`;
  const lock = await acquireLock(lockKey, job.timeout);
  if (!lock) return; // Another instance is running this job

  try {
    await withTimeout(job.handler(), job.timeout);
    await recordSuccess(job.name);
  } catch (error) {
    await recordFailure(job.name, error);
  } finally {
    await releaseLock(lock);
  }
}
```

# Self-Check

Before finalizing your response:

- Do distributed locks prevent duplicate execution across instances?
- Are stale locks recovered if a worker dies mid-execution?
- Is job execution history persisted for operational visibility?
- Can jobs be manually triggered and enabled/disabled without redeployment?
- Are job timeouts enforced to prevent hung tasks?
- Is the scheduler health-checkable for monitoring?

— via PromptShop: https://promptshop.munirabbasi.me/prompts/background-job-scheduler-builder

How to use it

Choose your scheduling library, backend language, job types, locking mechanism, and failure handling approach. The builder produces a complete job scheduling system with cron definitions, distributed locking, execution tracking, and admin endpoints.

Tags

Related prompts

Code GenerationAdvanced

WebSocket Server Scaffold Generator

Generate a complete WebSocket server with room management, event handling, authentication, heartbeat monitoring, and reconnection support for real-time applications.

ChatGPTClaudeGemini+2
Code GenerationAdvanced

Message Broker Setup Generator

Generate a complete message broker configuration with topic design, producer and consumer code, dead letter handling, and operational setup for RabbitMQ or Kafka.

ChatGPTClaudeGemini+2
Code GenerationIntermediate

File Upload and Processing Pipeline

Generate a complete file upload system with multipart handling, virus scanning, image processing, cloud storage integration, and progress tracking for your backend.

ChatGPTClaudeGemini+2
Code GenerationIntermediate

API Versioning Strategy Implementer

Generate a complete API versioning system with routing, deprecation handling, version negotiation, migration guides, and backward compatibility strategies for evolving APIs.

ChatGPTClaudeGemini+2
Code GenerationIntermediate

Serverless Function Template Generator

Generate production-ready serverless function templates with cold start optimization, middleware patterns, error handling, and deployment configurations for your cloud provider.

ChatGPTClaudeGemini+2
Code GenerationAdvanced

Queue Worker and Job Processor Template

Generate a complete background job processing system with queue management, worker implementations, retry logic, dead letter handling, and monitoring for async task execution.

ChatGPTClaudeGemini+2