{"id":15533362,"url":"https://github.com/lobocv/gowork","last_synced_at":"2025-03-28T22:42:23.459Z","repository":{"id":79921537,"uuid":"260091328","full_name":"lobocv/gowork","owner":"lobocv","description":"Concurrency patterns for golang","archived":false,"fork":false,"pushed_at":"2020-05-04T14:58:52.000Z","size":9,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-08-28T02:04:20.535Z","etag":null,"topics":["concurrency-patterns","golang","worker"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lobocv.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-04-30T02:07:51.000Z","updated_at":"2024-06-19T07:47:33.995Z","dependencies_parsed_at":"2023-04-22T01:01:39.463Z","dependency_job_id":null,"html_url":"https://github.com/lobocv/gowork","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobocv%2Fgowork","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobocv%2Fgowork/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobocv%2Fgowork/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lobocv%2Fgowork/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lobocv","download_url":"https://codeload.github.com/lobocv/gowork/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246112638,"owners_count":20725300,"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":["concurrency-patterns","golang","worker"],"created_at":"2024-10-02T11:36:00.160Z","updated_at":"2025-03-28T22:42:23.437Z","avatar_url":"https://github.com/lobocv.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gowork\nConcurrency patterns for golang.\nThese patterns were made for fun to see if generic worker patterns could be developed using closures. \nThey are NOT recommended for production.\n\nThese concurrency patterns make use of closures to execute your tasks\n\n## MutliTask\n\nMultiTask can be used when you want to run several tasks in parallel and wait for them all to complete\n\n## Batch\n\nBatch can be used when you have a task you want to do for every item in a list but you want to limit \nthe number of items processed at any given time.\n\n## BufferedBatch\n\nBufferedBatch can be used when you have a task you want to run for every X number of items in a slice. For example\nif you have a slice [1, 2, 3, 4, 5, 6, 7, 8] and a buffer size of 3, it would run jobs for [1,2,3], [4, 5, 6], [7, 8]  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flobocv%2Fgowork","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flobocv%2Fgowork","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flobocv%2Fgowork/lists"}