[ https://issues.apache.org/jira/browse/SAMZA-364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14086561#comment-14086561 ]
Chinmay Soman commented on SAMZA-364: ------------------------------------- This seems useful : assuming suitable timeouts are in place - in case the user code / script for a given hook does something weird. Also, is recovery (for a given failed task) the same as startup ? Or should we treat it as a separate injection point ? > Refactor lifecycle listener APIs > -------------------------------- > > Key: SAMZA-364 > URL: https://issues.apache.org/jira/browse/SAMZA-364 > Project: Samza > Issue Type: Bug > Components: container > Affects Versions: 0.8.0 > Reporter: Chris Riccomini > > There are a many cases where a developer might like to plug into different > points throughout the lifecycle of a Samza job's execution. Example use cases > for this include: > * Wanting to initialize setup/tear down of a slf4j log binding (SAMZA-350) > * Wanting to initialize remote systems that the job interacts with. > * Wanting to setup a custom HTTP (or some other) server for operational > purposes. > Potential injection points include: > # SamzaContainer startup/shutdown. > # Before/after processing a message in a TaskInstance. > # Before/after init'ing a TaskInstance. > # Before/after shutting down a TaskInstance. > # Before/after windowing a TaskInstance. > # Before/after committing offsets. > # Before/after a job is started. > # All of the YARN AM related events. > Right now, we have a TaskLifecycleListener. This is insufficient to cover all > cases, and is somewhat cumbersome to deal with because we instantiate one > listener per TaskInstance in a container. > We should refactor and re-design the lifecycle APIs for Samza. This will > include investigating how other servlets/containers handle things, writing a > doc, and implementing the new API. > I expect that this will result in backwards incompatible changes with > TaskLifecycleListener. I think this is OK. -- This message was sent by Atlassian JIRA (v6.2#6252)