{"id":28454078,"url":"https://github.com/hyperjiang/timewheel","last_synced_at":"2025-06-15T19:37:36.237Z","repository":{"id":294600262,"uuid":"987486721","full_name":"hyperjiang/timewheel","owner":"hyperjiang","description":"Time wheel in golang.","archived":false,"fork":false,"pushed_at":"2025-05-22T07:37:11.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-06T18:53:13.573Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/hyperjiang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null}},"created_at":"2025-05-21T06:33:36.000Z","updated_at":"2025-05-22T07:16:22.000Z","dependencies_parsed_at":"2025-05-21T07:43:06.831Z","dependency_job_id":"d77947e5-a6b1-47b6-963a-4a840e0e96b7","html_url":"https://github.com/hyperjiang/timewheel","commit_stats":null,"previous_names":["hyperjiang/timewheel"],"tags_count":0,"template":false,"template_full_name":"hyperjiang/go-tpl","purl":"pkg:github/hyperjiang/timewheel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjiang%2Ftimewheel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjiang%2Ftimewheel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjiang%2Ftimewheel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjiang%2Ftimewheel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hyperjiang","download_url":"https://codeload.github.com/hyperjiang/timewheel/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hyperjiang%2Ftimewheel/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260040162,"owners_count":22949760,"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":[],"created_at":"2025-06-06T18:40:40.306Z","updated_at":"2025-06-15T19:37:36.227Z","avatar_url":"https://github.com/hyperjiang.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Time Wheel\n\n[![GoDoc](https://pkg.go.dev/badge/github.com/hyperjiang/timewheel)](https://pkg.go.dev/github.com/hyperjiang/timewheel)\n[![CI](https://github.com/hyperjiang/timewheel/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/hyperjiang/timewheel/actions/workflows/ci.yml)\n[![](https://goreportcard.com/badge/github.com/hyperjiang/timewheel)](https://goreportcard.com/report/github.com/hyperjiang/timewheel)\n[![codecov](https://codecov.io/gh/hyperjiang/timewheel/branch/main/graph/badge.svg)](https://codecov.io/gh/hyperjiang/timewheel)\n[![Release](https://img.shields.io/github/release/hyperjiang/timewheel.svg)](https://github.com/hyperjiang/timewheel/releases)\n\nSimple time wheel in golang.\n\n## Prerequisite\n\ngo version \u003e= 1.18\n\n\n## Usage\n\n```\nimport \"github.com/hyperjiang/timewheel\"\n\ntype MyHandler struct {\n}\n\nfunc (h *MyHandler) Handle(param any) {\n\t// do your own business\n}\n\ntw := timewheel.New(\n    timewheel.WithHandler(new(MyHandler)),\n    timewheel.WithLogger(timewheel.Printf),\n    timewheel.WithSlotNum(10),\n    timewheel.WithTickDuration(time.Millisecond*100),\n)\n\ntw.Start()\n\ntw.AddTask(time.Second, \"1s\")\ntw.AddTask(time.Second*10, \"10s\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperjiang%2Ftimewheel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhyperjiang%2Ftimewheel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhyperjiang%2Ftimewheel/lists"}