[ 
https://issues.apache.org/jira/browse/GRIFFIN-200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16633577#comment-16633577
 ] 

William Guo commented on GRIFFIN-200:
-------------------------------------

Should hooks by synchronous or asynchronous?
-- It depends, if we want to 'control' the job rate limit, it should be sync 
call, if it is just for notification, async will be better.
Whether exceptions thrown are able to interrupt action execution?
--As you said, we need interrupt it. but if we need to verify jobs, we should 
refine our job submit pipeline such as add one verify phase.
Whether single or multiple hooks should be supported?
--It should be flexible, we can support multiple hooks. but it seems more like 
multiple message channels if those messages are not used to control the job, 
but for message only.

Does livy support all these features?



> Lifecycle hooks support
> -----------------------
>
>                 Key: GRIFFIN-200
>                 URL: https://issues.apache.org/jira/browse/GRIFFIN-200
>             Project: Griffin (Incubating)
>          Issue Type: New Feature
>            Reporter: Nikolay Sokolov
>            Assignee: William Guo
>            Priority: Minor
>
> In some environments, users might want to perform certain actions 
> before/after job is created, before/after job is activated, before/after job 
> is deleted, and so on.
> To fullfill that need, some hook plugin mechanism can be provided, similar to 
> what Hive is doing. User would place respective jar files into Service module 
> classpath at deployment time, and would specify class names using some 
> annotation or using property listing class names (particular mechanism is yet 
> to be determined).
> Proposed signature:
> {code:none}
> public interface JobLifecycleHook {
>     void beforeAddJob(AbstractJob js) throws Exception;
>     void afterAddJob(AbstractJob js) throws Exception;
>     void beforeOnAction(AbstractJob job, String action) throws Exception;
>     void afterOnAction(AbstractJob job, String action) throws Exception;
>     void beforeDeleteJob(AbstractJob job) throws Exception;
>     void afterDeleteJob(AbstractJob job) throws Exception;
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to