Riberry

Riberry

  • Docs
  • Blog

›Configuration

Introduction

  • Overview
  • Installation

Configuration

  • Core
  • Application

Design

  • Overview
  • Core
  • Custom
  • Domain Model

Application Configuration

Scheduling

YAML Configuration

Path: applications.(app).instances.(instance).schedules : array

schedules:
  - days: '*'
    timeZone: Australia/Melbourne
    priority: 1
    parameter: active
    value: "N"
  - days: '*'
    startTime: 11:00:00
    endTime: 15:00:00
    timeZone: Australia/Melbourne
    priority: 2
    parameter: active
    value: "Y"

days (string)


# All days
days: *

# Specific days
days: MON,WED,FRI

The day the schedule applies to. Either * to mark all days or a comma-separated string of short-form days to mark the exact days.

timeZone (string / tzdata format)

timeZone: America/New_York

The timezone which the schedule applies for. A list of timezones can be found here.

startTime (string /HH:MM:SS format)

Default: 00:00:00

startTime: 13:30:45

The time when the schedule becomes active.

endTime (string /HH:MM:SS format)

Default: 23:59:59

endTime: 13:30:45

The time when the schedule is de-activated.

priority (integer)

Default: 64

Range: 1 to 255 (inclusive)

endTime: 13:30:45

The priority of the schedule in case there's an overlapping schedule.

parameter (string)

parameter: active

The type of schedule. This is used by applications to determine the behaviour the schedule applies to.

value (string)

value: "Y"

The value relating to the parameter. This is fed into applications to assess the current state of the schedule.

Application Integration

Riberry provides two built-in dynamic schedulers: DynamicQueues and DynamicConcurrency.

DynamicQueues

Class path: riberry.celery.client.dynamic.parameters.DynamicQueues

Parameter: active (overridable)

The DynamicQueues class can dynamically enable and disable specific Celery queues. The class only functions on the defined scalable Celery queues (Workflow.scalable_queues):

from riberry.celery.client.dynamic.parameters import DynamicQueues

workflow = Workflow(
    ...
    scalable_queues=['celery', 'event'],
    dynamic_parameters=[DynamicQueues()]
)

If an instance has a schedule with parameter active and the value is "N", the queues will be disabled. If all queues for the worker are disabled, the concurrency count will also be reduced to 0. This can provide considerable memory improvements, so it may be best to seperate out your scalable queues to separate workers.

DynamicConcurrency

Class path: riberry.celery.client.dynamic.parameters.DynamicConcurrency

Parameter: concurrency (overridable)

The DynamicConcurrency class can dynamically scale the concurrency of a worker. The class only functions on workers which have one or more the defined scalable Celery queues (Workflow.scalable_queues):

from riberry.celery.client.dynamic.parameters import DynamicConcurrency

workflow = Workflow(
    ...
    scalable_queues=['celery', 'event'],
    dynamic_parameters=[DynamicConcurrency()]
)
← Core ConfigurationHigh-level Overview →
  • Scheduling
    • YAML Configuration
  • Application Integration
    • DynamicQueues
    • DynamicConcurrency
Riberry
Docs
Getting Started (or other categories)Guides (or other categories)API Reference (or other categories)
Community
User ShowcaseStack OverflowProject ChatTwitter
More
BlogGitHubStar
Facebook Open Source
Copyright © 2018 Shady Rafehi