forked from hugegraph/hugegraph
support rest api timeout (#674)
implement: #665 Change-Id: Id6b36904494a57e18d67bb73db8ce906858d9cb1
This commit is contained in:
parent
cd5953e07f
commit
0a0578fdb9
|
|
@ -33,8 +33,8 @@ import org.slf4j.Logger;
|
|||
|
||||
import com.baidu.hugegraph.HugeException;
|
||||
import com.baidu.hugegraph.HugeGraph;
|
||||
import com.baidu.hugegraph.api.schema.Checkable;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.define.Checkable;
|
||||
import com.baidu.hugegraph.metrics.MetricsUtil;
|
||||
import com.baidu.hugegraph.server.RestServer;
|
||||
import com.baidu.hugegraph.type.HugeType;
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ import javax.ws.rs.ext.Provider;
|
|||
|
||||
import com.baidu.hugegraph.config.HugeConfig;
|
||||
import com.baidu.hugegraph.config.ServerOptions;
|
||||
import com.baidu.hugegraph.core.WorkLoad;
|
||||
import com.baidu.hugegraph.define.WorkLoad;
|
||||
import com.baidu.hugegraph.util.Bytes;
|
||||
import com.baidu.hugegraph.util.E;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ import javax.ws.rs.container.ContainerResponseFilter;
|
|||
import javax.ws.rs.core.Context;
|
||||
import javax.ws.rs.ext.Provider;
|
||||
|
||||
import com.baidu.hugegraph.core.WorkLoad;
|
||||
import com.baidu.hugegraph.define.WorkLoad;
|
||||
|
||||
@Provider
|
||||
@Singleton
|
||||
|
|
|
|||
|
|
@ -29,9 +29,10 @@ import org.slf4j.Logger;
|
|||
import com.baidu.hugegraph.HugeException;
|
||||
import com.baidu.hugegraph.HugeGraph;
|
||||
import com.baidu.hugegraph.api.API;
|
||||
import com.baidu.hugegraph.api.schema.Checkable;
|
||||
import com.baidu.hugegraph.config.HugeConfig;
|
||||
import com.baidu.hugegraph.config.ServerOptions;
|
||||
import com.baidu.hugegraph.define.Checkable;
|
||||
import com.baidu.hugegraph.define.UpdateStrategy;
|
||||
import com.baidu.hugegraph.metrics.MetricsUtil;
|
||||
import com.baidu.hugegraph.server.RestServer;
|
||||
import com.baidu.hugegraph.structure.HugeElement;
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ import com.baidu.hugegraph.backend.tx.SchemaTransaction;
|
|||
import com.baidu.hugegraph.config.HugeConfig;
|
||||
import com.baidu.hugegraph.config.ServerOptions;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.define.UpdateStrategy;
|
||||
import com.baidu.hugegraph.exception.NotFoundException;
|
||||
import com.baidu.hugegraph.schema.EdgeLabel;
|
||||
import com.baidu.hugegraph.schema.PropertyKey;
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ import com.baidu.hugegraph.backend.id.SplicingIdGenerator;
|
|||
import com.baidu.hugegraph.config.HugeConfig;
|
||||
import com.baidu.hugegraph.config.ServerOptions;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.define.UpdateStrategy;
|
||||
import com.baidu.hugegraph.schema.PropertyKey;
|
||||
import com.baidu.hugegraph.schema.VertexLabel;
|
||||
import com.baidu.hugegraph.server.RestServer;
|
||||
|
|
|
|||
|
|
@ -44,10 +44,10 @@ import com.baidu.hugegraph.HugeException;
|
|||
import com.baidu.hugegraph.HugeGraph;
|
||||
import com.baidu.hugegraph.api.API;
|
||||
import com.baidu.hugegraph.api.filter.StatusFilter.Status;
|
||||
import com.baidu.hugegraph.api.schema.Checkable;
|
||||
import com.baidu.hugegraph.backend.id.Id;
|
||||
import com.baidu.hugegraph.backend.query.Query;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.define.Checkable;
|
||||
import com.baidu.hugegraph.job.Job;
|
||||
import com.baidu.hugegraph.job.JobBuilder;
|
||||
import com.baidu.hugegraph.metrics.MetricsUtil;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ import com.baidu.hugegraph.api.API;
|
|||
import com.baidu.hugegraph.api.filter.StatusFilter.Status;
|
||||
import com.baidu.hugegraph.backend.id.Id;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.define.Checkable;
|
||||
import com.baidu.hugegraph.schema.EdgeLabel;
|
||||
import com.baidu.hugegraph.type.define.Frequency;
|
||||
import com.baidu.hugegraph.type.define.GraphMode;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import com.baidu.hugegraph.api.API;
|
|||
import com.baidu.hugegraph.api.filter.StatusFilter.Status;
|
||||
import com.baidu.hugegraph.backend.id.Id;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.define.Checkable;
|
||||
import com.baidu.hugegraph.schema.IndexLabel;
|
||||
import com.baidu.hugegraph.type.HugeType;
|
||||
import com.baidu.hugegraph.type.define.GraphMode;
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ import com.baidu.hugegraph.HugeGraph;
|
|||
import com.baidu.hugegraph.api.API;
|
||||
import com.baidu.hugegraph.api.filter.StatusFilter.Status;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.define.Checkable;
|
||||
import com.baidu.hugegraph.schema.PropertyKey;
|
||||
import com.baidu.hugegraph.type.define.Cardinality;
|
||||
import com.baidu.hugegraph.type.define.DataType;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@ import com.baidu.hugegraph.api.API;
|
|||
import com.baidu.hugegraph.api.filter.StatusFilter.Status;
|
||||
import com.baidu.hugegraph.backend.id.Id;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.define.Checkable;
|
||||
import com.baidu.hugegraph.schema.VertexLabel;
|
||||
import com.baidu.hugegraph.type.define.GraphMode;
|
||||
import com.baidu.hugegraph.type.define.IdStrategy;
|
||||
|
|
|
|||
|
|
@ -66,6 +66,16 @@ public class ServerOptions extends OptionHolder {
|
|||
256
|
||||
);
|
||||
|
||||
|
||||
public static final ConfigOption<Integer> REQUEST_TIMEOUT =
|
||||
new ConfigOption<>(
|
||||
"restserver.request_timeout",
|
||||
"The time in seconds within which a request must complete, " +
|
||||
"-1 means no timeout.",
|
||||
rangeInt(-1, Integer.MAX_VALUE),
|
||||
30
|
||||
);
|
||||
|
||||
public static final ConfigOption<Integer> CONN_IDLE_TIMEOUT =
|
||||
new ConfigOption<>(
|
||||
"restserver.connection_idle_timeout",
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.baidu.hugegraph.api.schema;
|
||||
package com.baidu.hugegraph.define;
|
||||
|
||||
public interface Checkable {
|
||||
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
package com.baidu.hugegraph.api.graph;
|
||||
package com.baidu.hugegraph.define;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Collection;
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
package com.baidu.hugegraph.core;
|
||||
package com.baidu.hugegraph.define;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ import org.glassfish.jersey.server.monitoring.RequestEventListener;
|
|||
import com.baidu.hugegraph.HugeException;
|
||||
import com.baidu.hugegraph.config.HugeConfig;
|
||||
import com.baidu.hugegraph.core.GraphManager;
|
||||
import com.baidu.hugegraph.core.WorkLoad;
|
||||
import com.baidu.hugegraph.define.WorkLoad;
|
||||
import com.baidu.hugegraph.util.E;
|
||||
import com.codahale.metrics.MetricRegistry;
|
||||
import com.codahale.metrics.jersey2.InstrumentedResourceMethodApplicationListener;
|
||||
|
|
|
|||
|
|
@ -70,17 +70,24 @@ public class RestServer {
|
|||
E.checkState(listeners.size() > 0,
|
||||
"Http Server should have some listeners, but now is none");
|
||||
NetworkListener listener = listeners.iterator().next();
|
||||
|
||||
// Option max_worker_threads
|
||||
int maxWorkerThreads = this.conf.get(ServerOptions.MAX_WORKER_THREADS);
|
||||
listener.getTransport()
|
||||
.getWorkerThreadPoolConfig()
|
||||
.setCorePoolSize(maxWorkerThreads)
|
||||
.setMaxPoolSize(maxWorkerThreads);
|
||||
|
||||
// Option keep_alive
|
||||
int idleTimeout = this.conf.get(ServerOptions.CONN_IDLE_TIMEOUT);
|
||||
int maxRequests = this.conf.get(ServerOptions.CONN_MAX_REQUESTS);
|
||||
listener.getKeepAlive().setIdleTimeoutInSeconds(idleTimeout);
|
||||
listener.getKeepAlive().setMaxRequestsCount(maxRequests);
|
||||
|
||||
// Option transaction timeout
|
||||
int transactionTimeout = this.conf.get(ServerOptions.REQUEST_TIMEOUT);
|
||||
listener.setTransactionTimeout(transactionTimeout);
|
||||
|
||||
return server;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue