{"id":18051775,"url":"https://github.com/joegasewicz/pytask-io","last_synced_at":"2025-04-06T10:13:29.273Z","repository":{"id":45646444,"uuid":"220044921","full_name":"joegasewicz/pytask-io","owner":"joegasewicz","description":"Python Async Task Queue","archived":false,"fork":false,"pushed_at":"2025-01-13T19:47:38.000Z","size":6243,"stargazers_count":92,"open_issues_count":26,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T09:07:35.251Z","etag":null,"topics":["asyncio","coroutines","redis","task-manager","task-queue","wsgi"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joegasewicz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-06T16:46:00.000Z","updated_at":"2025-03-08T21:17:01.000Z","dependencies_parsed_at":"2023-01-25T13:45:24.762Z","dependency_job_id":"739c0043-0eaf-4f48-a8c2-ee4fe34af326","html_url":"https://github.com/joegasewicz/pytask-io","commit_stats":null,"previous_names":["joegasewicz/pytask_io"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joegasewicz%2Fpytask-io","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joegasewicz%2Fpytask-io/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joegasewicz%2Fpytask-io/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joegasewicz%2Fpytask-io/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joegasewicz","download_url":"https://codeload.github.com/joegasewicz/pytask-io/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247464223,"owners_count":20942970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asyncio","coroutines","redis","task-manager","task-queue","wsgi"],"created_at":"2024-10-30T22:55:51.928Z","updated_at":"2025-04-06T10:13:29.249Z","avatar_url":"https://github.com/joegasewicz.png","language":"Python","readme":"![PyPI](https://img.shields.io/pypi/v/pytask-io)\n![Read the Docs](https://img.shields.io/readthedocs/pytask-io)\n![GitHub](https://img.shields.io/github/license/joegasewicz/pytask_io)\n\n\nAsynchronous Tasks Library using asyncio\n\nAn Asyncio based task queue that is designed to be super easy to use!\n\nRead the docs: [Documentation](https://pytask-io.readthedocs.io/en/latest/)\n\n![PyTask IO](assets/Group.png?raw=true \"Title\")\n\n## Install\n```bash\npip install pytask-io\n\ndocker run redis  # Rabbit MQ coming soon...\n\n```\n\n\n### Usage\n\n```python\n    from pytask_io import PyTaskIO\n    \n    # Starts the task runner\n    pytask = PytaskIO(\n        store_port=6379,\n        store_host=\"localhost\",\n        db=0,\n        workers=1,\n    )\n    \n    # Start the PytaskIO task queue on a separate thread.\n    pytask.run()\n    \n    # Handle a long running process, in this case a send email function\n    metadata = pytask.add_task(send_email, title, body)\n    \n    # Try once to get the results of your email sometime in the future\n    result = pytask.get_task(metadata)\n    \n    # Later we can use the `metadata` result to pass to `add_task`\n    result = pytask.poll_for_task(metadata, tries=100, interval=60)\n    \n    # Stop PytaskIO completely (This will not affect any units of work that haven't yet executed)\n    pytask.stop()\n\n```\n### Compatible task types\nPyTaskIO will always return back the task meta data.\nDo not embed Python objects of type frame, generator, traceback \u0026 context objects.\nIn this case you will get back the exception thrown when PyTaskIO attempts to execute the serialization.\n\n\n\n## Authors\n\n* **joegasewicz** - *Initial work* - [@joegasewicz](https://twitter.com/joegasewicz)\n\n## Contributing\nPull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.\n\nPlease make sure to update tests as appropriate.\n\n## License\n[MIT](https://choosealicense.com/licenses/mit/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoegasewicz%2Fpytask-io","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoegasewicz%2Fpytask-io","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoegasewicz%2Fpytask-io/lists"}