MCPcopy Create free account
hub / github.com/e2wugui/zeze / start

Method start

ZezeJava/ZezeJava/src/main/java/Zeze/Services/Token.java:500–545  ·  view source on GitHub ↗
(@Nullable Config conf, @Nullable String host, int port)

Source from the content-addressed store, hash-verified

498
499 // 参数host,port优先; 如果传null/<=0则以conf为准; 如果conf也没配置则用默认值null/DEFAULT_PORT
500 public Token start(@Nullable Config conf, @Nullable String host, int port) throws Exception {
501 lock();
502 try {
503 if (service != null)
504 return this;
505
506 rocksdb = new RocksDatabase(PropertiesHelper.getString("token.rocksdb", "token_db"));
507 tokenMapTable = rocksdb.getOrAddTable("tokenMap");
508
509 tokenRefCleanerLock.lock();
510 try {
511 if (tokenRefCleaner == null) {
512 tokenRefCleaner = new Thread(Token::cleanTokenRef, "TokenRefCleaner");
513 tokenRefCleaner.setDaemon(true);
514 tokenRefCleaner.setPriority(Thread.MAX_PRIORITY);
515 tokenRefCleaner.start();
516 }
517 } finally {
518 tokenRefCleanerLock.unlock();
519 }
520
521 ZezeCounter.tryInit();
522
523 service = new TokenServer(conf != null ? conf : new Config().loadAndParse());
524 RegisterProtocols(service);
525 var sc = service.getConfig();
526 if (sc.acceptorCount() == 0)
527 sc.addAcceptor(new Acceptor(port > 0 ? port : DEFAULT_PORT, host));
528 else {
529 sc.forEachAcceptor2(acceptor -> {
530 if (host != null)
531 acceptor.setIp(host);
532 if (port > 0)
533 acceptor.setPort(port);
534 return false;
535 });
536 }
537 service.start();
538
539 cleanTokenMapFuture = Task.scheduleUnsafe(1000, 1000, this::cleanTokenMap);
540 cleanTokenMapTableFuture = Task.scheduleAtUnsafe(3, 14, this::cleanTokenMapTable);
541 return this;
542 } finally {
543 unlock();
544 }
545 }
546
547 public void stop() throws Exception {
548 lock();

Callers 1

mainMethod · 0.95

Calls 15

getStringMethod · 0.95
tryInitMethod · 0.95
scheduleUnsafeMethod · 0.95
scheduleAtUnsafeMethod · 0.95
loadAndParseMethod · 0.80
acceptorCountMethod · 0.80
addAcceptorMethod · 0.80
forEachAcceptor2Method · 0.80
lockMethod · 0.65
startMethod · 0.65
unlockMethod · 0.65
getOrAddTableMethod · 0.45

Tested by

no test coverage detected