libi / dcron

轻量分布式定时任务库 a lightweight distributed job scheduler library
MIT License
446 stars 76 forks source link

add v2 driver draft PR #44

Closed dxyinme closed 1 year ago

dxyinme commented 1 year ago

driver接口重构 node_pool按照对应方式修改 还需要更多的测试以及etcd的新driver重构

libi commented 1 year ago

不同的 driver 实现可以使用使用不同的包空间,通过包隔离不同 driver 的实现,单个 driver 有多文件时也比较容易区分。

dxyinme commented 1 year ago

不同的 driver 实现可以使用使用不同的包空间,通过包隔离不同 driver 的实现,单个 driver 有多文件时也比较容易区分。

个人认为并不需要使用不同的包对driver进行隔离,原因如下:

  1. driver本身是一个逻辑含量比较少的模块,每个driver本质上只是对driver interface的一个实现,用一个文件表示就已经足够
  2. 隔离出不同的包会使得包名与例如go-redis/etcd 等 sdk的包名重复,在使用的时候需要rename,对autoimport造成一定的困扰,降低易用性
  3. 按照这种方式实现driver的初衷本身其实就是为了抹掉Driver这个类型在用户使用的时候进行显式指定,这个会在后续的实现中体现出来。
libi commented 1 year ago

嗯 最终实现可以确保在初始化dcron时使用任意一个满足接口的 driver 包名即可(比如使用一个独立的仓库gitub.com/xxx/abc 作为drvier实现),内置的driver实现可以放在一个包内。

libi commented 1 year ago

现在库已经有部分用户在生产环境使用了,为了尽可能降低对这部分用户的影响,我们可以考虑下启用develop分支了。 在develop分支试运行一段时间后合并到master进行release。

dxyinme commented 1 year ago

现在库已经有部分用户在生产环境使用了,为了尽可能降低对这部分用户的影响,我们可以考虑下启用develop分支了。 在develop分支试运行一段时间后合并到master进行release。

将target 修改为develop了