Name | periodiq JSON |
Version |
0.13.0
JSON |
| download |
home_page | None |
Summary | Simple Scheduler for Dramatiq Task Queue |
upload_time | 2024-10-16 09:30:31 |
maintainer | None |
docs_url | None |
author | Étienne BERSAC |
requires_python | <4.0,>=3.6 |
license | LGPL-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"
}