semvec/pypi-packages huggingface dataset:
pulse 0.1.2
Simple scheduling WSGI middleware.
License: MIT Licence

Scheduling WSGI Middleware
============================

This package acts as a WSGI scheduling engine, the middleware can be configured
to request web contexts at given intervals.  A user may then, within their application,
configure the web contexts to perform scheduled tasks e.g. maintainence.

The middleware for pulse is provided in pulse.middleware:PulseMiddleware and a paste
filter_app_factory is also provided.

Configuration
-----------------
Pulse can be configured in two ways.  The Middleware takes keyword configuration
arguments when constructed,or alternatively a config dictionary 
allowing it to be configured by paste.
If using pastes the pulse configuration options take the form of:
pulse.config.$configoption.

Currently only one configuration option is supported:
* context - This is the base web context that tasks are sent to,
    tasks are dispatched to /$context/$action, unless action is an absolute
    path.
* mode - This specifies the multiprocessing mode, the default is 'theading',
    if running python2.6 the 'processing' option is also available.
* guard - If True the pulse middleware prevents any pulse managed contexts
    from being accessed extenally, the default is False.

Tasks
------
Each task defines at an interval and a web context, pulse will request
the specified web context every interval seconds.

Creating A Task
~~~~~~~~~~~~~~~~
A new task is created by specifying configuration options, each option takes the form:
pulse.task.$taskname.$option

The following task configuration options are available:
* interval - The interval between task dispatching.
* action - The action to dispatch to: see pulse.config.context

Tasks can also be programmatically configured by passing a dictionary of 
<taskname, TaskObject> into  PulseMiddleware's task keyword argument.

Example
========

To request the following context '/sessions/cleanup' every 5 minutes, the following
paste configuration could be used:

pulse.config.context = sessions

pulse.task.cleanup.action = cleanup
pulse.task.cleanup.interval = 300