public Task<String> sayTask(String message) { return sayTask(message, null, null); }
@Test public void testComplex() throws Exception { Task<List<?>> t = Tasks.sequential( sayTask("1"), sayTask("2"), Tasks.parallel(sayTask("4"), sayTask("3")), sayTask("5") ); ec.submit(t); Assert.assertEquals(t.get().size(), 4); Asserts.assertEqualsIgnoringOrder((List<?>)t.get().get(2), ImmutableSet.of("3", "4")); Assert.assertTrue(messages.equals(Arrays.asList("1", "2", "3", "4", "5")) || messages.equals(Arrays.asList("1", "2", "4", "3", "5")), "messages="+messages); }
@Override public String call() { log.info("main job - "+Tasks.current()); messages.add("main"); DynamicTasks.queue( sayTask("world") ); return "bye"; } };
DynamicSequentialTask<String> t = new DynamicSequentialTask<String>(mainJob); t.queue(sayTask("hello"));