periodiq


Nameperiodiq JSON
Version 0.13.0 PyPI version JSON
download
home_pageNone
SummarySimple Scheduler for Dramatiq Task Queue
upload_time2024-10-16 09:30:31
maintainerNone
docs_urlNone
authorÉtienne BERSAC
requires_python<4.0,>=3.6
licenseLGPL-3.0+
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Simple Scheduler for Dramatiq Task Queue

[dramatiq](https://dramatiq.io) task queue is great but lacks a scheduler. This
project fills the gap.


## Features

- Cron-like scheduling.
- Single process.
- Fast and simple implementation.
- Easy on resources using SIGALRM.
- No dependencies except dramatiq ones.
- CLI consistent with dramatiq.
- Skip outdated message.


## Installation

periodiq is licensed under LGPL 3.0+. Please see [COPYING] and [COPYING.LESSER]
for licensing details.

[COPYING]: https://gitlab.com/bersace/periodiq/-/bloc/master/COPYING
[COPYING.LESSER]: https://gitlab.com/bersace/periodiq/-/bloc/master/COPYING.LESSER

``` console
$ pip install periodiq
```

Declare periodic tasks like this:

``` python
# filename: app.py

import dramatiq
from periodiq import PeriodiqMiddleware, cron

broker.add_middleware(PeriodiqMiddleware(skip_delay=30))

@dramatiq.actor(periodic=cron('0 * * * *'))
def hourly():
    # Do something each hour…
    ...
```

Then, run scheduler with:

``` console
$ periodiq -v app
[INFO] Starting Periodiq, a simple scheduler for Dramatiq.
[INFO] Registered periodic actors:
[INFO]
[INFO]     m h dom mon dow          module:actor@queue
[INFO]     ------------------------ ------------------
[INFO]     0 * * * *                app:hourly@default
[INFO]
...
```


## Support

If you need help or found a bug, consider [opening a GitLab
issue](https://gitlab.com/bersace/periodiq/issues/new) on the project. French
and English spoken.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "periodiq",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "\u00c9tienne BERSAC",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/13/89/792352ff691f21f51e299ad67f98399c762b1b744cf38a2d128485b34c14/periodiq-0.13.0.tar.gz",
    "platform": null,
    "description": "# Simple Scheduler for Dramatiq Task Queue\n\n[dramatiq](https://dramatiq.io) task queue is great but lacks a scheduler. This\nproject fills the gap.\n\n\n## Features\n\n- Cron-like scheduling.\n- Single process.\n- Fast and simple implementation.\n- Easy on resources using SIGALRM.\n- No dependencies except dramatiq ones.\n- CLI consistent with dramatiq.\n- Skip outdated message.\n\n\n## Installation\n\nperiodiq is licensed under LGPL 3.0+. Please see [COPYING] and [COPYING.LESSER]\nfor licensing details.\n\n[COPYING]: https://gitlab.com/bersace/periodiq/-/bloc/master/COPYING\n[COPYING.LESSER]: https://gitlab.com/bersace/periodiq/-/bloc/master/COPYING.LESSER\n\n``` console\n$ pip install periodiq\n```\n\nDeclare periodic tasks like this:\n\n``` python\n# filename: app.py\n\nimport dramatiq\nfrom periodiq import PeriodiqMiddleware, cron\n\nbroker.add_middleware(PeriodiqMiddleware(skip_delay=30))\n\n@dramatiq.actor(periodic=cron('0 * * * *'))\ndef hourly():\n    # Do something each hour\u2026\n    ...\n```\n\nThen, run scheduler with:\n\n``` console\n$ periodiq -v app\n[INFO] Starting Periodiq, a simple scheduler for Dramatiq.\n[INFO] Registered periodic actors:\n[INFO]\n[INFO]     m h dom mon dow          module:actor@queue\n[INFO]     ------------------------ ------------------\n[INFO]     0 * * * *                app:hourly@default\n[INFO]\n...\n```\n\n\n## Support\n\nIf you need help or found a bug, consider [opening a GitLab\nissue](https://gitlab.com/bersace/periodiq/issues/new) on the project. French\nand English spoken.\n",
    "bugtrack_url": null,
    "license": "LGPL-3.0+",
    "summary": "Simple Scheduler for Dramatiq Task Queue",
    "version": "0.13.0",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1bf13ddb6669e523068b009ca0f4a2e76e847a709df5a4b78ae015a73dd091e5",
                "md5": "11a5ff924d425acae8546f9e9538d091",
                "sha256": "f30d0d80ff7fa005958d1730e03f5a085420bb79aaa3b8331265d20d8a2e57af"
            },
            "downloads": -1,
            "filename": "periodiq-0.13.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "11a5ff924d425acae8546f9e9538d091",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.6",
            "size": 36897,
            "upload_time": "2024-10-16T09:30:29",
            "upload_time_iso_8601": "2024-10-16T09:30:29.845342Z",
            "url": "https://files.pythonhosted.org/packages/1b/f1/3ddb6669e523068b009ca0f4a2e76e847a709df5a4b78ae015a73dd091e5/periodiq-0.13.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1389792352ff691f21f51e299ad67f98399c762b1b744cf38a2d128485b34c14",
                "md5": "b9f7d3f7d56711c137bda0cc05fa0997",
                "sha256": "ecd83d7614bb9e019aa2718b63c4ffe0a6c77fa0d49f33fd90c309982ddcf7cb"
            },
            "downloads": -1,
            "filename": "periodiq-0.13.0.tar.gz",
            "has_sig": false,
            "md5_digest": "b9f7d3f7d56711c137bda0cc05fa0997",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.6",
            "size": 20217,
            "upload_time": "2024-10-16T09:30:31",
            "upload_time_iso_8601": "2024-10-16T09:30:31.606907Z",
            "url": "https://files.pythonhosted.org/packages/13/89/792352ff691f21f51e299ad67f98399c762b1b744cf38a2d128485b34c14/periodiq-0.13.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-16 09:30:31",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "periodiq"
}
        
Elapsed time: 1.07837s