func setUp() { // Start a QuotaService server. cfg := config.NewDefaultServiceConfig() cfg.GlobalDefaultBucket = config.NewDefaultBucketConfig(config.DefaultBucketName) nsc := config.NewDefaultNamespaceConfig("delaying") bc := config.NewDefaultBucketConfig("delaying") bc.Size = 1 // Very small. bc.FillRate = 100 config.AddBucket(nsc, bc) config.AddNamespace(cfg, nsc) server = quotaservice.New(memory.NewBucketFactory(), config.NewMemoryConfig(cfg), qsgrpc.New(target)) server.Start() }
func main() { cfg := config.NewDefaultServiceConfig() ns := config.NewDefaultNamespaceConfig("test.namespace") ns.DynamicBucketTemplate = config.NewDefaultBucketConfig(config.DynamicBucketTemplateName) ns.DynamicBucketTemplate.Size = 100000000000 ns.DynamicBucketTemplate.FillRate = 100000000 b := config.NewDefaultBucketConfig("xyz") config.AddBucket(ns, b) config.AddNamespace(cfg, ns) ns = config.NewDefaultNamespaceConfig("test.namespace2") ns.DefaultBucket = config.NewDefaultBucketConfig(config.DefaultBucketName) b = config.NewDefaultBucketConfig("xyz") config.AddBucket(ns, b) config.AddNamespace(cfg, ns) server := quotaservice.New(memory.NewBucketFactory(), config.NewMemoryConfig(cfg), grpc.New(GRPC_SERVER)) server.SetStatsListener(stats.NewMemoryStatsListener()) server.Start() // Serve Admin Console logging.Printf("Starting admin server on %v\n", ADMIN_SERVER) sm := http.NewServeMux() server.ServeAdminConsole(sm, "admin/public", true) go func() { http.ListenAndServe(ADMIN_SERVER, sm) }() // Block until SIGTERM, SIGKILL or SIGINT sigs := make(chan os.Signal, 1) signal.Notify(sigs, syscall.SIGTERM, syscall.SIGKILL, syscall.SIGINT) var shutdown sync.WaitGroup shutdown.Add(1) go func() { <-sigs shutdown.Done() }() shutdown.Wait() server.Stop() }