Skip to content

Latest commit

 

History

History
48 lines (35 loc) · 2.17 KB

README.md

File metadata and controls

48 lines (35 loc) · 2.17 KB

Worker-Bunch

... is a tasks/jobs/rules engine, primarily intended for use in a smarthome environment.

Worker-Bunch provides a programming infrastructure for creating tasks/jobs/rules with proprietary functionality. These tasks/jobs/rules are called "workers" here. Each worker runs as a separate thread.

The worker base class is supposed to get overwritten. The most functionality goes into 2 functions with limited scope: subscribe_notifications and _work. See dummy_worker.py and main.py.

The following infrastructure parts are already implemented:

  • Starting and stopping the workers
  • Logging
  • Configuration and validation of configuration file (extendable for your job configuration; JSON schema based)
  • Subscriptions to timer and cron events.
  • Subscriptions to MQTT topics and publish MQTT messages. MQTT messages get debounced (configurable time span).
  • Command line arguments

Other characteristics:

  • Runs as Linux service.
  • Additional prepacked is a Postgres and MQTT client. This is a quite opinionated decision due to the special lifecycle of the MQTT client (among others).
  • Ready to use is a database worker, which is fully configurable (cron, sql statements, sql scripts, text replacements). See database_worker.

Usage

Have a look in the app directory or in the separate Worker-Bunch-Sample repository

Note, that the PyPi packages are no longer maintained. Install via git instead:

# example
pip install git+https://github.com/rosenloecher-it/[email protected]
pip install https://github.com/rosenloecher-it/worker-bunch/archive/v1.0.5.tar.gz

Maintainer & License

MIT © Raul Rosenlöcher

The code is available at GitHub.