bring-your-own-cloud
Schedule Types

RRSCH Scheduler Types

This document details all available scheduler types and their specific configuration options.

Common Scheduler Configuration

Most schedulers share these common configuration options:

OptionTypeDescriptionDefault
timerintegerTimer interval in milliseconds-
fetchCountintegerNumber of items to fetch per batch-
visibilityTimeoutintegerTimeout in minutes before task is considered failed-
parallelismintegerNumber of parallel workers (minimum 3)3

Available Schedulers

Query Scheduler

Manages scheduled queries and their execution.

{
  "type": "query",
  "timer": 500,
  "fetchCount": 10,
  "visibilityTimeout": 10,
  "notifRetryQueue": ""
}
Additional FieldTypeDescriptionRequired
notifRetryQueuestringQueue name for notification retriesNo

Report Scheduler

Handles scheduled report generation.

{
  "type": "report",
  "timer": 500,
  "fetchCount": 10,
  "visibilityTimeout": 10
}

Threat Feed Scheduler

Manages threat feed updates and processing.

{
  "type": "threatfeed",
  "timer": 30000,
  "fetchCount": 2,
  "visibilityTimeout": 3
}

Notification Retry Scheduler

Handles retry logic for failed notifications.

{
  "type": "notification-retry",
  "notifRetryQueue": ""
}
FieldTypeDescriptionRequired
notifRetryQueuestringQueue name for notification retriesYes

Enrichment Scheduler

Manages data enrichment tasks.

{
  "type": "enrichment",
  "timer": 60000,
  "fetchCount": 1,
  "visibilityTimeout": 10
}

Complete Configuration Example

Here's a complete configuration example with all scheduler types:

{
  "chdsn": "clickhouse://user:password@localhost:9000/dbname",
  "common": {
    "baseurl": "http://localhost:8000",
    "pgdsn": "postgres://user:password@localhost/dbname?sslmode=verify-full"
  },
  "schedule": {
    "schedulers": [
      {
        "type": "query",
        "timer": 500,
        "fetchCount": 10,
        "visibilityTimeout": 10,
        "notifRetryQueue": ""
      },
      {
        "type": "report",
        "timer": 500,
        "fetchCount": 10,
        "visibilityTimeout": 10
      },
      {
        "type": "threatfeed",
        "timer": 30000,
        "fetchCount": 2,
        "visibilityTimeout": 3
      },
      {
        "type": "notification-retry",
        "notifRetryQueue": ""
      },
      {
        "type": "enrichment",
        "timer": 60000,
        "fetchCount": 1,
        "visibilityTimeout": 10
      }
    ]
  }
}

Best Practices

  1. Timer Settings

    • Use shorter timers (500ms) for time-sensitive tasks like queries.
    • Use longer timers (30000ms-60000ms) for background tasks like threat feeds and enrichments
    • Adjust based on system load and requirements
  2. Fetch Count

    • Use higher fetch counts (10+) for quick-processing tasks
    • Use lower fetch counts (1-2) for resource-intensive tasks
    • Consider memory usage when setting this value
  3. Parallelism

    • Minimum of 3 workers per scheduler
    • Increase for high-volume workloads
    • Monitor system resources to find optimal values.