{"id":14979079,"url":"https://github.com/devtud/aiocronjob","last_synced_at":"2025-10-28T14:30:45.672Z","repository":{"id":98823402,"uuid":"269085399","full_name":"devtud/aiocronjob","owner":"devtud","description":"web controlled asyncio cronjobs","archived":false,"fork":false,"pushed_at":"2022-12-31T16:50:57.000Z","size":988,"stargazers_count":7,"open_issues_count":11,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-01T15:21:58.259Z","etag":null,"topics":["async","asyncio","cronjob","fastapi","python3","rest","rest-api","task-scheduler","uvicorn","web"],"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/devtud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-06-03T12:43:11.000Z","updated_at":"2022-07-03T21:59:03.000Z","dependencies_parsed_at":"2023-06-25T22:40:51.140Z","dependency_job_id":null,"html_url":"https://github.com/devtud/aiocronjob","commit_stats":{"total_commits":86,"total_committers":4,"mean_commits":21.5,"dds":"0.046511627906976716","last_synced_commit":"0dfaf111eea9fe10ebe2691aebd9ae55f894804e"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devtud%2Faiocronjob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devtud%2Faiocronjob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devtud%2Faiocronjob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devtud%2Faiocronjob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devtud","download_url":"https://codeload.github.com/devtud/aiocronjob/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238662684,"owners_count":19509646,"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":["async","asyncio","cronjob","fastapi","python3","rest","rest-api","task-scheduler","uvicorn","web"],"created_at":"2024-09-24T13:59:11.731Z","updated_at":"2025-10-28T14:30:45.316Z","avatar_url":"https://github.com/devtud.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# aiocronjob\n\n[![Join the chat at https://gitter.im/aiocronjob/community](https://badges.gitter.im/aiocronjob/community.svg)](https://gitter.im/aiocronjob/community?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/aiocronjob?style=flat-square)\n![PyPI](https://img.shields.io/pypi/v/aiocronjob?style=flat-square)\n![PyPI - License](https://img.shields.io/pypi/l/aiocronjob?style=flat-square)\n![GitHub last commit](https://img.shields.io/github/last-commit/devtud/aiocronjob?style=flat-square)\n![PyPI - Status](https://img.shields.io/pypi/status/aiocronjob?style=flat-square)\n[![Tests](https://github.com/devtud/aiocronjob/actions/workflows/tests.yml/badge.svg)](https://github.com/devtud/aiocronjob/actions/workflows/tests.yml)\n[![Codecov](https://codecov.io/gh/devtud/aiocronjob/branch/main/graph/badge.svg)](https://codecov.io/gh/devtud/aiocronjob)\n\nSchedule and run `asyncio` coroutines and manage them from a web interface or programmatically using the rest api.\n\n### Requires python \u003e= 3.8\n\n### How to install\n\n```bash\npip3 install aiocronjob\n```\n\n### Usage example\n\nSee [examples/simple_tasks.py](https://github.com/devtud/aiocronjob/blob/master/examples/simple_tasks.py)\n\n#### Rest API\n\nOpen [localhost:8000/docs](http://localhost:8000/docs) for endpoints docs.\n\n**`curl`** example:\n \n```bash\n$ curl http://0.0.0.0:8000/api/jobs\n```\n```json\nTBD\n```\n\n### Development\n\n**Requirements**:\n- **Python** \u003e= 3.8 and **PDM** for backend\n\n\n#### Install dependencies\n\n```bash\n$ git clone https://github.com/devtud/aiocronjob.git\n\n$ cd aiocronjob\n\n$ pdm sync\n```\n\n#### Run tests\n\n```bash\npdm run coverage run -m unittest discover\n\npdm run coverage report -m\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevtud%2Faiocronjob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevtud%2Faiocronjob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevtud%2Faiocronjob/lists"}