news.persister — Schedule persistence

Provides a persister class that will persist schedules along multiple processes or threads.

class news.persister.Persister(redis, context=None)

Persists schedule states along multiple processes or threads via redis channels.

Parameters:redis (Redis) – A redis instance to use for persistence.

Example:

from redis import Redis
from django.contrib.auth.models import User
from news.models.django import create_abc_schedule, create_schedule
from news.scheduler import Scheduler
from news.persister import Persister

redis = Redis()
persister = Persister(redis=redis)

# define persisted schedule model
ScheduleABC = create_abc_schedule(user_model=User)
Schedule = create_schedule(ScheduleABC, persister=persister)

...

# scheduler's schedule states will be persisted over change events from
# other processes or threads. this allows you to run a news scheduler
# on it's own process or threads.
scheduler.configure(persister=persister)