Skip to content

Latest commit

 

History

History
59 lines (43 loc) · 1.57 KB

README.md

File metadata and controls

59 lines (43 loc) · 1.57 KB

TiKV Watcher

Go Go Report Card Go Reference

TiKV Watcher is the TiKV watcher for Casbin. With this library, Casbin can synchronize the policy with the TiKV database in multiple enforcer instances.

Note: Considering that TiKV doesn't have watch mechanism like etcd or channel like Redis, this ugly implementation uses polling to achieve monitoring a certain key, which may cause some performance trouble

Installation:

go get github.com/casbin/tikv-watcher

Single Example:

start the TiKV service before run this example:

package main

import (
	"fmt"
	"time"

	watcher "github.com/casbin/tikv-watcher"
	casbin "github.com/casbin/casbin/v2"
)

func main() {
	e, _ := casbin.NewEnforcer("examples/rbac_model.conf", "examples/rbac_policy.csv")
	w, err := watcher.NewWatcher(
		"testkey",
		100*time.Millisecond,
		"127.0.0.1:2379",
	)
	if err != nil {
		panic(err)
		return
	}
	e.SetWatcher(w)
	w.SetUpdateCallback(
		func(s string) {
			fmt.Println("===================get" + s)
		},
	)
	e.SavePolicy()
	time.Sleep(10 * time.Second)

}

License:

This project is under Apache 2.0 License. See the LICENSE file for the full license text.