2020import java .util .Arrays ;
2121import java .util .Iterator ;
2222import java .util .Random ;
23- import java .util .concurrent .CountDownLatch ;
2423import java .util .concurrent .TimeoutException ;
2524
2625import org .apache .hugegraph .HugeException ;
@@ -120,46 +119,42 @@ public void testTask() throws TimeoutException {
120119 public void testTaskWithoutResult () throws TimeoutException {
121120 HugeGraph graph = graph ();
122121 TaskScheduler scheduler = graph .taskScheduler ();
123- CountDownLatch latch = new CountDownLatch (1 );
124-
125- TaskCallable <String > callable = new TaskCallable <String >() {
126- @ Override
127- public String call () throws Exception {
128- latch .await ();
129- return "metadata-result" ;
130- }
131-
132- @ Override
133- protected void done () {
134- scheduler .save (this .task ());
135- }
136- };
137122
138123 Id id = IdGenerator .of (88889 );
139- HugeTask <?> task = new HugeTask <>(id , null , callable );
124+ HugeTask <?> task = new HugeTask <>(id , null , new SleepCallable <>() );
140125 task .type ("test" );
141- task .name ("metadata-task" );
126+ task .name ("metadata-task-in-memory " );
142127 scheduler .schedule (task );
143128
144129 try {
145130 Whitebox .setInternalState (task , "result" , "\" in-memory-result\" " );
146131
147132 HugeTask <?> taskWithoutResult = scheduler .task (id , false );
148- Assert .assertEquals ("metadata-task" , taskWithoutResult .name ());
133+ Assert .assertEquals ("metadata-task-in-memory" ,
134+ taskWithoutResult .name ());
149135 Assert .assertNull (taskWithoutResult .result ());
150136
151137 Iterator <HugeTask <Object >> iter = scheduler .tasks (ImmutableList .of (id ),
152138 false );
153139 Assert .assertTrue (iter .hasNext ());
154140 taskWithoutResult = iter .next ();
155- Assert .assertEquals ("metadata-task" , taskWithoutResult .name ());
141+ Assert .assertEquals ("metadata-task-in-memory" ,
142+ taskWithoutResult .name ());
156143 Assert .assertNull (taskWithoutResult .result ());
157144 Assert .assertFalse (iter .hasNext ());
158145 } finally {
159146 Whitebox .setInternalState (task , "result" , null );
160- latch .countDown ();
161147 }
162148
149+ scheduler .waitUntilTaskCompleted (id , 10 );
150+ scheduler .delete (id , false );
151+
152+ id = IdGenerator .of (88890 );
153+ task = new HugeTask <>(id , null , new MetadataResultCallable ());
154+ task .type ("test" );
155+ task .name ("metadata-task" );
156+ scheduler .schedule (task );
157+
163158 scheduler .waitUntilTaskCompleted (id , 10 );
164159
165160 HugeTask <?> taskWithResult = scheduler .task (id , true );
@@ -169,8 +164,14 @@ protected void done() {
169164 Assert .assertEquals ("metadata-task" , taskWithoutResult .name ());
170165 Assert .assertNull (taskWithoutResult .result ());
171166
172- Iterator <HugeTask <Object >> iter = scheduler .tasks (ImmutableList .of (id ),
173- false );
167+ Iterator <HugeTask <Object >> iter = scheduler .tasks (ImmutableList .of (id ));
168+ Assert .assertTrue (iter .hasNext ());
169+ taskWithResult = iter .next ();
170+ Assert .assertEquals ("metadata-task" , taskWithResult .name ());
171+ Assert .assertEquals ("\" metadata-result\" " , taskWithResult .result ());
172+ Assert .assertFalse (iter .hasNext ());
173+
174+ iter = scheduler .tasks (ImmutableList .of (id ), false );
174175 Assert .assertTrue (iter .hasNext ());
175176 taskWithoutResult = iter .next ();
176177 Assert .assertEquals ("metadata-task" , taskWithoutResult .name ());
@@ -183,9 +184,16 @@ protected void done() {
183184 Assert .assertEquals ("metadata-task" , taskWithoutResult .name ());
184185 Assert .assertNull (taskWithoutResult .result ());
185186
186- scheduler .delete (id , false );
187+ iter = scheduler .tasks (TaskStatus .SUCCESS , 10 , null );
188+ Assert .assertTrue (iter .hasNext ());
189+ taskWithResult = iter .next ();
190+ Assert .assertEquals ("metadata-task" , taskWithResult .name ());
191+ Assert .assertEquals ("\" metadata-result\" " , taskWithResult .result ());
192+
193+ Id taskId = id ;
194+ scheduler .delete (taskId , false );
187195 Assert .assertThrows (NotFoundException .class , () -> {
188- scheduler .task (id );
196+ scheduler .task (taskId );
189197 });
190198 }
191199
@@ -788,4 +796,21 @@ public void done() {
788796 this .graph ().taskScheduler ().save (this .task ());
789797 }
790798 }
799+
800+ public static class MetadataResultCallable extends TaskCallable <String > {
801+
802+ public MetadataResultCallable () {
803+ // pass
804+ }
805+
806+ @ Override
807+ public String call () {
808+ return "metadata-result" ;
809+ }
810+
811+ @ Override
812+ public void done () {
813+ this .graph ().taskScheduler ().save (this .task ());
814+ }
815+ }
791816}
0 commit comments