# QMate
Create asynchronous and asynchronous task queues that run on a schedule... symantically.
## Examples
### Full Example
#### Run the function ```PrintSomething``` every quarter of every minute:
```py
from qmate import Queue, Task
import time
def PrintSomething(text):
print(text)
queue = Queue(True)
queue.schedule(
Task(
func=PrintSomething,
name='Print Something',
at=["00", "15", "30", "45"],
args=["Working"]
)
)
while True:
time.sleep(0.001)
```
#### `Queue.schedule` takes a single task or a list of tasks.
```py
queue.schedule(
[
Task(
func=PrintSomething,
name='Quarterly Print',
at=["00", "15", "30", "45"],
args=["Working"]
),
Task(
func=PrintSomething,
name='10PM Print',
at=["22:00:00"],
args=["It's 10PM."]
)
]
)
```
## Task Time Parameters
`Every` cannot be combined with other time parameters. `At`, `On`, and `During` can be combined. `At` is required, unless using `Every`.
### On
Run tasks on specific days. If empty, run everyday.
```py
on=["Sunday", "Monday"] # on Sundays and Mondays
on=["everyday"] # on everyday of the week
```
---
### At
Run tasks at certain times.
```py
at=["17:30:00"] # at 5:30 PM
at=["30:00"] # at 30 minutes past every hour
at=["15", "45"] # at a quarter past and a quarter till every hour
```
---
### During
Run tasks during specfic months. If empty, run every month.
```py
during=["May", "July"] # during the months of may and july
```
---
### Every
Run tasks on certain intervals. Max time: `23:59:59`
```py
every=["3:30:00"] # every 3 hours, 30 minutes
every=["03:00"] # every 3 minutes
every=["30"] # every 30 seconds
```
---
### Examples
#### Create a task to ```PrintSomething``` everyday of the week at 10AM and 10PM, during the month of September:
```py
Task(
func=PrintSomething,
name='Print Something',
on=["Everyday"],
at=["10:00:00", "22:00:00"],
during=["September"],
args=["Working"]
)
```
#### Create a task to ```PrintSomething``` on Saturday and Sunday ten minutes past every hour:
```py
Task(
func=PrintSomething,
name='Print Something',
on=["Saturday", "Sunday"],
at=["10:00"],
during=["September"],
args=["Working"]
)
```
#### Create a task to run every 10 seconds and pass it multiple arguments:
Acceptable formats: 23:59:59, 59:59, 59
```py
Task(
func=MultipleArgument,
name='Run every 10 seconds',
every=["10"],
args=["Houston", 713]
)
```
Raw data
{
"_id": null,
"home_page": null,
"name": "qmate",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "events, tasks, queue, schedules, scheduling, event loops",
"author": "Digital Kelvin",
"author_email": "<qmate@digitalkelvin.com>",
"download_url": "https://files.pythonhosted.org/packages/26/5d/34507ebf188666ce0e77a930d89084fbf6f3f2520c1e6c9ac511c9d19a22/qmate-0.0.2.tar.gz",
"platform": null,
"description": "# QMate\nCreate asynchronous and asynchronous task queues that run on a schedule... symantically.\n\n## Examples\n\n\n### Full Example\n#### Run the function ```PrintSomething``` every quarter of every minute:\n```py\nfrom qmate import Queue, Task\nimport time\n\n\ndef PrintSomething(text):\n print(text)\n\n\nqueue = Queue(True)\nqueue.schedule(\n Task(\n func=PrintSomething,\n name='Print Something',\n at=[\"00\", \"15\", \"30\", \"45\"],\n args=[\"Working\"]\n )\n)\n\nwhile True:\n time.sleep(0.001)\n```\n\n#### `Queue.schedule` takes a single task or a list of tasks.\n```py\nqueue.schedule(\n [\n Task(\n func=PrintSomething,\n name='Quarterly Print',\n at=[\"00\", \"15\", \"30\", \"45\"],\n args=[\"Working\"]\n ),\n Task(\n func=PrintSomething,\n name='10PM Print',\n at=[\"22:00:00\"],\n args=[\"It's 10PM.\"]\n )\n ]\n)\n\n``` \n\n## Task Time Parameters\n`Every` cannot be combined with other time parameters. `At`, `On`, and `During` can be combined. `At` is required, unless using `Every`.\n\n\n### On\n\nRun tasks on specific days. If empty, run everyday.\n```py\non=[\"Sunday\", \"Monday\"] # on Sundays and Mondays\non=[\"everyday\"] # on everyday of the week\n```\n---\n### At\nRun tasks at certain times.\n```py\nat=[\"17:30:00\"] # at 5:30 PM\nat=[\"30:00\"] # at 30 minutes past every hour\nat=[\"15\", \"45\"] # at a quarter past and a quarter till every hour\n```\n---\n### During\nRun tasks during specfic months. If empty, run every month.\n```py\nduring=[\"May\", \"July\"] # during the months of may and july\n```\n---\n### Every\nRun tasks on certain intervals. Max time: `23:59:59`\n```py\nevery=[\"3:30:00\"] # every 3 hours, 30 minutes\nevery=[\"03:00\"] # every 3 minutes\nevery=[\"30\"] # every 30 seconds\n```\n---\n### Examples\n\n#### Create a task to ```PrintSomething``` everyday of the week at 10AM and 10PM, during the month of September:\n```py\nTask(\n func=PrintSomething,\n name='Print Something',\n on=[\"Everyday\"],\n at=[\"10:00:00\", \"22:00:00\"],\n during=[\"September\"],\n args=[\"Working\"]\n)\n```\n\n#### Create a task to ```PrintSomething``` on Saturday and Sunday ten minutes past every hour:\n```py\nTask(\n func=PrintSomething,\n name='Print Something',\n on=[\"Saturday\", \"Sunday\"],\n at=[\"10:00\"],\n during=[\"September\"],\n args=[\"Working\"]\n)\n```\n\n#### Create a task to run every 10 seconds and pass it multiple arguments:\n Acceptable formats: 23:59:59, 59:59, 59\n```py\nTask(\n func=MultipleArgument,\n name='Run every 10 seconds',\n every=[\"10\"],\n args=[\"Houston\", 713]\n)\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Create asynchronous and asynchronous task",
"version": "0.0.2",
"project_urls": null,
"split_keywords": [
"events",
" tasks",
" queue",
" schedules",
" scheduling",
" event loops"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "52fb506a26e141f7b5bcf5a01b8022ba895f6c14f58a3ca333779b3948f778ec",
"md5": "a138f869c54cc2e5b9cd263d473bdd62",
"sha256": "15bc6ac4bebc7f1f84d70339d03e334e2a638d6c750ced47e5a1c0e17ce15bda"
},
"downloads": -1,
"filename": "qmate-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a138f869c54cc2e5b9cd263d473bdd62",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 3991,
"upload_time": "2025-02-26T23:52:35",
"upload_time_iso_8601": "2025-02-26T23:52:35.510990Z",
"url": "https://files.pythonhosted.org/packages/52/fb/506a26e141f7b5bcf5a01b8022ba895f6c14f58a3ca333779b3948f778ec/qmate-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "265d34507ebf188666ce0e77a930d89084fbf6f3f2520c1e6c9ac511c9d19a22",
"md5": "182efefa009b90c229ef74d0e563e2ba",
"sha256": "ddd127f546ccdb6c19be275898c41cad646e21bf3d272bf26ecc8be04758c211"
},
"downloads": -1,
"filename": "qmate-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "182efefa009b90c229ef74d0e563e2ba",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4298,
"upload_time": "2025-02-26T23:52:37",
"upload_time_iso_8601": "2025-02-26T23:52:37.618984Z",
"url": "https://files.pythonhosted.org/packages/26/5d/34507ebf188666ce0e77a930d89084fbf6f3f2520c1e6c9ac511c9d19a22/qmate-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-26 23:52:37",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "qmate"
}