Skip to content

august0715/job-worker

Repository files navigation

job-worker

Go codecov

一个简单的原型,使用于apiserver-agent这种模式。

arch

apiserver分发任务,agent指定work_queue来监听 apiserver的事件接口,获取事件之后并发执行。此架构属于模式。

此库主要用于实现agent端。

需要根据场景主要实现以下两点:

  1. TaskService接口, 此接口是对apiserver的功能的抽象。

  2. JobWoker.Consume,此方法是对任务具体如何执行的抽象,失败就返回一个非空的error。

demo见job_test.go

框架实现了任务的执行、取消、超时、日志上报、优雅关闭等功能,这些都大量依赖context.Context

所以本项目另外一个目的是能帮助大家彻底掌握context.Context,知道其相关使用场景以及如何使用。理解此项目就能熟练掌握go并发编程了。

其他:

  • 此库中的WorkGroup可以作为线程池使用。
  • apiserver端可以简单使用redis的brop实现,当然不考虑到分布式场景channel也可以。
  • 此库通过race-detector规则校验

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages