worker-bunch


Nameworker-bunch JSON
Version 1.0.5 PyPI version JSON
download
home_pagehttps://github.com/rosenloecher-it/worker-bunch
SummaryTask/job/rule engine, primarily intended for use in a smarthome environment.
upload_time2023-09-02 08:59:56
maintainer
docs_urlNone
authorRosenloecher-IT (Raul Rosenlöcher)
requires_python
license
keywords smarthome mqtt rule-engine task-engine
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# 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"
}
        
Elapsed time: 0.11138s