[
https://issues.apache.org/jira/browse/TINKERPOP-2806?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Tom Kolanko updated TINKERPOP-2806:
-----------------------------------
Description:
What happens in the gremlin-server is more or less a black box for provider
plugins. This ticket proposes a change to the GraphManager interface to allow
providers to opt into receiving notifications for GremlinExecutor lifecycles.
The following items could be added to the GraphManager interface:
/**
* This method will be called before a script or query is processed by the
* gremlin-server.
* The msg is the {@link RequestMessage} received by the gremlin-server.
*/
default void beforeQueryStart(RequestMessage msg) {
}
/**
* This method will be called before a script or query is processed by the
* gremlin-server.
* The msg is the {@link RequestMessage} received by the gremlin-server.
* The error is the exception encounted during processing from the
gremlin-server.
*/
default void onQueryError(RequestMessage msg, Throwable error) {
}
/**
* When a script or query successfully completes this method will be called.
* The msg is the {@link RequestMessage} received by the gremlin-server.
*/
default void onQuerySuccess(RequestMessage msg) {
}
In AbstractEvalOpProcessor where the GremlinExector.LifeCycle is created the
graphManager can be accessed through the Context and those methods called at
each stage of the lifecycle.
In TraversalOpProcessor the graphManager can also be accessed through context.
Similar methods exist to the GremlinExecutor.LifeCycle, those can call the
graphManager methods as needed.
was:
What happens in the gremlin-server is more or less a black box for provider
plugins. This ticket proposes a change to the GraphManager interface to allow
providers to opt into receiving notifications for GremlinExecutor lifecycles.
The following items could be added to the GraphManager interface:
default void beforeQueryStart(String requestID, Map<String, Object> args) {}
default void onQueryError(String requestID, String error) {}
default void onQuerySuccess(String requestID) {}
default void onQueryTimeout(String requestID, long evaluationTimeout) {}
In AbstractEvalOpProcessor where the GremlinExector.LifeCycle is created the
graphManager can be accessed through the Context and those methods called at
each stage of the lifecycle.
In TraversalOpProcessor the graphManager can also be accessed through context.
Similar methods exist to the GremlinExecutor.LifeCycle, those can call the
graphManager methods as needed.
> Provide method for provider plugins to get notified on script/query
> processing
> -------------------------------------------------------------------------------
>
> Key: TINKERPOP-2806
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2806
> Project: TinkerPop
> Issue Type: Bug
> Components: server
> Affects Versions: 3.6.1
> Reporter: Tom Kolanko
> Priority: Minor
> Fix For: 3.6.2
>
>
> What happens in the gremlin-server is more or less a black box for provider
> plugins. This ticket proposes a change to the GraphManager interface to allow
> providers to opt into receiving notifications for GremlinExecutor lifecycles.
> The following items could be added to the GraphManager interface:
> /**
> * This method will be called before a script or query is processed by the
> * gremlin-server.
> * The msg is the {@link RequestMessage} received by the gremlin-server.
> */
> default void beforeQueryStart(RequestMessage msg) {
> }
> /**
> * This method will be called before a script or query is processed by the
> * gremlin-server.
> * The msg is the {@link RequestMessage} received by the gremlin-server.
> * The error is the exception encounted during processing from the
> gremlin-server.
> */
> default void onQueryError(RequestMessage msg, Throwable error) {
> }
> /**
> * When a script or query successfully completes this method will be
> called.
> * The msg is the {@link RequestMessage} received by the gremlin-server.
> */
> default void onQuerySuccess(RequestMessage msg) {
> }
> In AbstractEvalOpProcessor where the GremlinExector.LifeCycle is created the
> graphManager can be accessed through the Context and those methods called at
> each stage of the lifecycle.
> In TraversalOpProcessor the graphManager can also be accessed through
> context. Similar methods exist to the GremlinExecutor.LifeCycle, those can
> call the graphManager methods as needed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)