# 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](https://github.com/rosenloecher-it/worker-bunch/blob/master/app/dummy_worker.py) and
[main.py](https://github.com/rosenloecher-it/worker-bunch/blob/master/app/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](https://github.com/rosenloecher-it/worker-bunch/blob/master/worker_bunch/database/database_worker.py).
## Usage
Have a look at [Worker-Bunch-Sample](https://github.com/rosenloecher-it/worker-bunch-sample)
## Maintainer & License
MIT © [Raul Rosenlöcher](https://github.com/rosenloecher-it)
The code is available at [GitHub][home].
[home]: https://github.com/rosenloecher-it/worker-bunch
Raw data
{
"_id": null,
"home_page": "https://github.com/rosenloecher-it/worker-bunch",
"name": "worker-bunch",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "smarthome,mqtt,rule-engine,task-engine",
"author": "Rosenloecher-IT (Raul Rosenl\u00f6cher)",
"author_email": "<github@rosenloecher-it.de>",
"download_url": "https://files.pythonhosted.org/packages/f2/a5/ca942a8c647ea9fcdb4306f94ca2888331c9b0fc67c392a11e2abe9c4740/worker-bunch-1.0.5.tar.gz",
"platform": null,
"description": "\n# Worker-Bunch\n\n... is a tasks/jobs/rules engine, primarily intended for use in a smarthome environment.\n\n*Worker-Bunch* provides a programming infrastructure for creating tasks/jobs/rules with proprietary functionality.\nThese tasks/jobs/rules are called \"workers\" here. Each worker runs as a separate thread.\n\nThe worker base class is supposed to get overwritten. The most functionality goes into 2 functions with limited scope:\n`subscribe_notifications` and `_work`. See\n[dummy_worker.py](https://github.com/rosenloecher-it/worker-bunch/blob/master/app/dummy_worker.py) and\n[main.py](https://github.com/rosenloecher-it/worker-bunch/blob/master/app/main.py).\n\nThe following infrastructure parts are already implemented:\n- Starting and stopping the workers\n- Logging\n- Configuration and validation of configuration file (extendable for your job configuration; JSON schema based)\n- Subscriptions to timer and cron events.\n- Subscriptions to MQTT topics and publish MQTT messages. MQTT messages get debounced (configurable time span).\n- Command line arguments\n\nOther characteristics:\n- Runs as Linux service.\n- Additional prepacked is a Postgres and MQTT client.\n This is a quite opinionated decision due to the special lifecycle of the MQTT client (among others).\n- Ready to use is a database worker, which is fully configurable (cron, sql statements, sql scripts, text replacements).\n See [database_worker](https://github.com/rosenloecher-it/worker-bunch/blob/master/worker_bunch/database/database_worker.py).\n\n\n## Usage\n\nHave a look at [Worker-Bunch-Sample](https://github.com/rosenloecher-it/worker-bunch-sample)\n\n\n## Maintainer & License\n\nMIT \u00a9 [Raul Rosenl\u00f6cher](https://github.com/rosenloecher-it)\n\nThe code is available at [GitHub][home].\n\n[home]: https://github.com/rosenloecher-it/worker-bunch\n\n\n",
"bugtrack_url": null,
"license": "",
"summary": "Task/job/rule engine, primarily intended for use in a smarthome environment.",
"version": "1.0.5",
"project_urls": {
"Homepage": "https://github.com/rosenloecher-it/worker-bunch"
},
"split_keywords": [
"smarthome",
"mqtt",
"rule-engine",
"task-engine"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "6fa906efcdca7d0eafd5f7c65ad451ef31c9f815e7714363a357524a40ce1f67",
"md5": "cd726475600fc978ca63fd41c4a342b6",
"sha256": "9e2e248476729cb212e631e12cec245dd8887ae7bcaeba217b5fc4fda23206a7"
},
"downloads": -1,
"filename": "worker_bunch-1.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cd726475600fc978ca63fd41c4a342b6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 51052,
"upload_time": "2023-09-02T08:59:54",
"upload_time_iso_8601": "2023-09-02T08:59:54.881986Z",
"url": "https://files.pythonhosted.org/packages/6f/a9/06efcdca7d0eafd5f7c65ad451ef31c9f815e7714363a357524a40ce1f67/worker_bunch-1.0.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f2a5ca942a8c647ea9fcdb4306f94ca2888331c9b0fc67c392a11e2abe9c4740",
"md5": "5fa8dda9c48de0717743b2477590f8db",
"sha256": "3360e80f72e1514648806aa749261aad26d0990e89714cf0147cfe3c8cb00fe4"
},
"downloads": -1,
"filename": "worker-bunch-1.0.5.tar.gz",
"has_sig": false,
"md5_digest": "5fa8dda9c48de0717743b2477590f8db",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38304,
"upload_time": "2023-09-02T08:59:56",
"upload_time_iso_8601": "2023-09-02T08:59:56.800701Z",
"url": "https://files.pythonhosted.org/packages/f2/a5/ca942a8c647ea9fcdb4306f94ca2888331c9b0fc67c392a11e2abe9c4740/worker-bunch-1.0.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-09-02 08:59:56",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "rosenloecher-it",
"github_project": "worker-bunch",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "worker-bunch"
}