Java Code Examples for io.vertx.core.VertxOptions#setMaxWorkerExecuteTime()

The following examples show how to use io.vertx.core.VertxOptions#setMaxWorkerExecuteTime() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: VertxProperties.java    From vertx-spring-boot with Apache License 2.0 4 votes vote down vote up
public VertxOptions toVertxOptions() {
    VertxOptions vertxOptions = new VertxOptions();
    vertxOptions.setEventLoopPoolSize(eventLoopPoolSize);
    vertxOptions.setWorkerPoolSize(workerPoolSize);
    vertxOptions.setInternalBlockingPoolSize(internalBlockingPoolSize);
    vertxOptions.setBlockedThreadCheckInterval(blockedThreadCheckInterval);
    vertxOptions.setMaxEventLoopExecuteTime(maxEventLoopExecuteTime);
    vertxOptions.setMaxWorkerExecuteTime(maxWorkerExecuteTime);
    vertxOptions.setHAEnabled(haEnabled);
    vertxOptions.setQuorumSize(quorumSize);
    vertxOptions.setHAGroup(haGroup);
    vertxOptions.setWarningExceptionTime(warningExceptionTime);
    vertxOptions.setPreferNativeTransport(preferNativeTransport);
    vertxOptions.setMaxEventLoopExecuteTimeUnit(maxEventLoopExecuteTimeUnit);
    vertxOptions.setMaxWorkerExecuteTimeUnit(maxWorkerExecuteTimeUnit);
    vertxOptions.setWarningExceptionTimeUnit(warningExceptionTimeUnit);
    vertxOptions.setBlockedThreadCheckIntervalUnit(blockedThreadCheckIntervalUnit);

    MetricsOptions metricsOptions = new MetricsOptions();
    metricsOptions.setEnabled(metricsEnabled);
    vertxOptions.setMetricsOptions(metricsOptions);

    FileSystemOptions fileSystemOptions = new FileSystemOptions();
    fileSystemOptions.setClassPathResolvingEnabled(fileSystem.isClassPathResolvingEnabled());
    fileSystemOptions.setFileCachingEnabled(fileSystem.isFileCachingEnabled());
    vertxOptions.setFileSystemOptions(fileSystemOptions);

    AddressResolverOptions addressResolverOptions = new AddressResolverOptions();
    addressResolverOptions.setHostsPath(addressResolver.getHostsPath());
    addressResolverOptions.setHostsValue(addressResolver.getHostsValue());
    addressResolverOptions.setServers(addressResolver.getServers());
    addressResolverOptions.setOptResourceEnabled(addressResolver.isOptResourceEnabled());
    addressResolverOptions.setCacheMinTimeToLive(addressResolver.getCacheMinTimeToLive());
    addressResolverOptions.setCacheMaxTimeToLive(addressResolver.getCacheMaxTimeToLive());
    addressResolverOptions.setCacheNegativeTimeToLive(addressResolver.getCacheNegativeTimeToLive());
    addressResolverOptions.setQueryTimeout(addressResolver.getQueryTimeout());
    addressResolverOptions.setMaxQueries(addressResolver.getMaxQueries());
    addressResolverOptions.setRdFlag(addressResolver.isRdFlag());
    addressResolverOptions.setSearchDomains(addressResolver.getSearchDomains());
    addressResolverOptions.setNdots(addressResolver.getNdots());
    addressResolverOptions.setRotateServers(addressResolver.isRotateServers());
    vertxOptions.setAddressResolverOptions(addressResolverOptions);

    return vertxOptions;
}
 
Example 2
Source File: VertxCoreRecorder.java    From quarkus with Apache License 2.0 4 votes vote down vote up
private static VertxOptions convertToVertxOptions(VertxConfiguration conf, VertxOptions options, boolean allowClustering) {

        if (!conf.useAsyncDNS) {
            System.setProperty(ResolverProvider.DISABLE_DNS_RESOLVER_PROP_NAME, "true");
        }

        if (allowClustering) {
            // Order matters, as the cluster options modifies the event bus options.
            setEventBusOptions(conf, options);
            initializeClusterOptions(conf, options);
        }

        String fileCacheDir = System.getProperty(CACHE_DIR_BASE_PROP_NAME,
                System.getProperty("java.io.tmpdir", ".") + File.separator + "vertx-cache");

        options.setFileSystemOptions(new FileSystemOptions()
                .setFileCachingEnabled(conf.caching)
                .setFileCacheDir(fileCacheDir)
                .setClassPathResolvingEnabled(conf.classpathResolving));
        options.setWorkerPoolSize(conf.workerPoolSize);
        options.setInternalBlockingPoolSize(conf.internalBlockingPoolSize);

        options.setBlockedThreadCheckInterval(conf.warningExceptionTime.toMillis());
        if (conf.eventLoopsPoolSize.isPresent()) {
            options.setEventLoopPoolSize(conf.eventLoopsPoolSize.getAsInt());
        } else {
            options.setEventLoopPoolSize(calculateDefaultIOThreads());
        }

        Optional<Duration> maxEventLoopExecuteTime = conf.maxEventLoopExecuteTime;
        if (maxEventLoopExecuteTime.isPresent()) {
            options.setMaxEventLoopExecuteTime(maxEventLoopExecuteTime.get().toMillis());
            options.setMaxEventLoopExecuteTimeUnit(TimeUnit.MILLISECONDS);
        }

        Optional<Duration> maxWorkerExecuteTime = conf.maxWorkerExecuteTime;
        if (maxWorkerExecuteTime.isPresent()) {
            options.setMaxWorkerExecuteTime(maxWorkerExecuteTime.get().toMillis());
            options.setMaxWorkerExecuteTimeUnit(TimeUnit.MILLISECONDS);
        }

        options.setWarningExceptionTime(conf.warningExceptionTime.toNanos());

        options.setPreferNativeTransport(conf.preferNativeTransport);

        return options;
    }
 
Example 3
Source File: VxApiLauncher.java    From VX-API-Gateway with MIT License 4 votes vote down vote up
/**
 * 初始化vert.x的配置文件<br>
 * This method copy from the {@link io.vertx.core.VertxOptionsConverter}
 * fromJson
 * 
 * @param json
 * @param obj
 */
public void initVertxConfig(JsonObject json, VertxOptions obj) {

	if (json.getValue("addressResolverOptions") instanceof JsonObject) {
		obj.setAddressResolverOptions(new io.vertx.core.dns.AddressResolverOptions((JsonObject) json.getValue("addressResolverOptions")));
	}
	if (json.getValue("blockedThreadCheckInterval") instanceof Number) {
		obj.setBlockedThreadCheckInterval(((Number) json.getValue("blockedThreadCheckInterval")).longValue());
	}
	if (json.getValue("clusterHost") instanceof String) {
		obj.setClusterHost((String) json.getValue("clusterHost"));
	}
	if (json.getValue("clusterPingInterval") instanceof Number) {
		obj.setClusterPingInterval(((Number) json.getValue("clusterPingInterval")).longValue());
	}
	if (json.getValue("clusterPingReplyInterval") instanceof Number) {
		obj.setClusterPingReplyInterval(((Number) json.getValue("clusterPingReplyInterval")).longValue());
	}
	if (json.getValue("clusterPort") instanceof Number) {
		obj.setClusterPort(((Number) json.getValue("clusterPort")).intValue());
	}
	if (json.getValue("clusterPublicHost") instanceof String) {
		obj.setClusterPublicHost((String) json.getValue("clusterPublicHost"));
	}
	if (json.getValue("clusterPublicPort") instanceof Number) {
		obj.setClusterPublicPort(((Number) json.getValue("clusterPublicPort")).intValue());
	}
	if (json.getValue("clustered") instanceof Boolean) {
		obj.setClustered((Boolean) json.getValue("clustered"));
	}
	if (json.getValue("eventBusOptions") instanceof JsonObject) {
		obj.setEventBusOptions(new io.vertx.core.eventbus.EventBusOptions((JsonObject) json.getValue("eventBusOptions")));
	}
	if (json.getValue("eventLoopPoolSize") instanceof Number) {
		obj.setEventLoopPoolSize(((Number) json.getValue("eventLoopPoolSize")).intValue());
	}
	if (json.getValue("fileResolverCachingEnabled") instanceof Boolean) {
		obj.setFileResolverCachingEnabled((Boolean) json.getValue("fileResolverCachingEnabled"));
	}
	if (json.getValue("haEnabled") instanceof Boolean) {
		obj.setHAEnabled((Boolean) json.getValue("haEnabled"));
	}
	if (json.getValue("haGroup") instanceof String) {
		obj.setHAGroup((String) json.getValue("haGroup"));
	}
	if (json.getValue("internalBlockingPoolSize") instanceof Number) {
		obj.setInternalBlockingPoolSize(((Number) json.getValue("internalBlockingPoolSize")).intValue());
	}
	if (json.getValue("maxEventLoopExecuteTime") instanceof Number) {
		obj.setMaxEventLoopExecuteTime(((Number) json.getValue("maxEventLoopExecuteTime")).longValue());
	}
	if (json.getValue("maxWorkerExecuteTime") instanceof Number) {
		obj.setMaxWorkerExecuteTime(((Number) json.getValue("maxWorkerExecuteTime")).longValue());
	}
	if (json.getValue("metricsOptions") instanceof JsonObject) {
		obj.setMetricsOptions(new io.vertx.core.metrics.MetricsOptions((JsonObject) json.getValue("metricsOptions")));
	}
	if (json.getValue("preferNativeTransport") instanceof Boolean) {
		obj.setPreferNativeTransport((Boolean) json.getValue("preferNativeTransport"));
	}
	if (json.getValue("quorumSize") instanceof Number) {
		obj.setQuorumSize(((Number) json.getValue("quorumSize")).intValue());
	}
	if (json.getValue("warningExceptionTime") instanceof Number) {
		obj.setWarningExceptionTime(((Number) json.getValue("warningExceptionTime")).longValue());
	}
	if (json.getValue("workerPoolSize") instanceof Number) {
		obj.setWorkerPoolSize(((Number) json.getValue("workerPoolSize")).intValue());
	}

}
 
Example 4
Source File: GaeAppEventListener.java    From gae with MIT License 4 votes vote down vote up
private void startHttpServer(ApplicationContext springCtx) {
    GaeServerProps props = springCtx.getBean(GaeServerProps.class);

    GaeHttpServer.springCtx = springCtx;


    // worker线程池选项
    VertxOptions options = new VertxOptions();
    int nioThreads = props.getNioThread() > 0 ? props.getNioThread() : Runtime.getRuntime().availableProcessors();
    options.setEventLoopPoolSize(nioThreads);
    options.setMaxWorkerExecuteTime(1000);
    // options.setWorkerPoolSize(nioThreads * 2);

    // 部署选项
    Vertx vertx = Vertx.vertx(options);
    DeploymentOptions depOptions = new DeploymentOptions();
    // 设置verticle数量为NIO线程数的2倍
    int verticleCount = nioThreads > 0 ? nioThreads * 2 : Runtime.getRuntime().availableProcessors();
    depOptions.setInstances(verticleCount);

    // 部署
    CountDownLatch latch = new CountDownLatch(1);
    vertx.deployVerticle(GaeHttpServer.class.getName(), depOptions, ar -> {
        if (ar.failed()) {
            log.warn("deploy failed, msg:", ar.cause());
        }

        latch.countDown();
    });

    try {
        // 等待部署完成
        latch.await();
        log.info("deploy succeeded, nioThread = {}, verticles = {}", nioThreads, verticleCount);

    } catch (InterruptedException e) {
        log.error("", e);
    }

    this.vertx = vertx;
}