[
https://issues.apache.org/jira/browse/TWILL-116?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14625422#comment-14625422
]
ASF GitHub Bot commented on TWILL-116:
--------------------------------------
Github user chtyim commented on a diff in the pull request:
https://github.com/apache/incubator-twill/pull/52#discussion_r34516278
--- Diff:
twill-yarn/src/test/java/org/apache/twill/yarn/EchoServerTestRun.java ---
@@ -132,4 +156,51 @@ public void run() {
// Sleep a bit before exiting.
TimeUnit.SECONDS.sleep(2);
}
+
+ /**
+ * Need helper method here to wait for getting resource report because
{@link TwillController#getResourceReport()}
+ * could return null if the application has not fully started.
+ *
+ * This method helps validate restart scenario.
+ *
+ * To avoid long sleep if instanceIdToContainerId is passed, then
compare the container ids to ones before.
+ * Otherwise just return the valid resource report.
+ */
+ @Nullable
+ private ResourceReport waitForAfterRestartResourceReport(TwillController
controller, String runnable, long timeout,
+ TimeUnit
timeoutUnit, int numOfResources,
+ @Nullable
Map<Integer, String> instanceIdToContainerId) {
+ Stopwatch stopwatch = new Stopwatch();
+ stopwatch.start();
+ do {
+ ResourceReport report = controller.getResourceReport();
+ if (report == null || report.getRunnableResources(runnable) == null)
{
+ Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS);
+ } else if (report.getRunnableResources(runnable) == null ||
+ report.getRunnableResources(runnable).size() != numOfResources) {
+ Uninterruptibles.sleepUninterruptibly(100, TimeUnit.MILLISECONDS);
+ } else {
+ if (instanceIdToContainerId == null) {
+ return report;
+ } else {
--- End diff --
Sorry missed in last review. No need to have else after return statement.
This makes code less indented, hence easier to read.
> Support for restart instances of runnable in an application
> -----------------------------------------------------------
>
> Key: TWILL-116
> URL: https://issues.apache.org/jira/browse/TWILL-116
> Project: Apache Twill
> Issue Type: New Feature
> Components: core
> Reporter: Albert Shau
> Assignee: Henry Saputra
> Fix For: 0.6.0-incubating
>
> Attachments: TWILL-116-design-4.pdf, TWILL-116-design-5.pdf,
> TWILL-116-design-6.pdf, TWILL-116-design-7.pdf, TWILL-116-design-final-2.pdf
>
>
> Once an application is running, it would be good to be able to stop, start,
> and restart a specific runnable of the application without affecting other
> runnables.
> For example, I may be running multiple services in a single application, with
> each service as a different runnable. One of my services gets into an invalid
> state. I now want to restart just that runnable and not the other ones that
> are running properly.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)