Created
December 18, 2017 19:56
-
-
Save Romeh/048aadf3c5b684d67ec84c9ba4dd80f1 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Test | |
public void testMapReducedJobsWithFailFastSync(){ | |
// example of ignite jobs, first one succeeded , second fail, third succeeded , but the reducer will fail fast once he collect the failed job | |
IgniteCallable validationServiceJob1=() -> ServiceResponse.<String>builder().response("Job 1 is valid").serviceOrigin("job1") | |
.success(true).build(); | |
IgniteCallable validationServiceJob2=() -> ServiceResponse.<String>builder().response("Job 2 is failed").serviceOrigin("job2") | |
.success(false).build(); | |
IgniteCallable validationServiceJob3=() -> ServiceResponse.<String>builder().response("Job 3 is valid").serviceOrigin("job3") | |
.success(true).build(); | |
final MapReduceResponse mapReduceResponse = computeService.validateWithAllServicesInParallelSync( | |
Arrays.asList(validationServiceJob1,validationServiceJob2,validationServiceJob3) | |
); | |
boolean status=true; | |
for(ServiceResponse serviceResponse: mapReduceResponse.getReducedResponses().values()){ | |
status=status && serviceResponse.isSuccess(); | |
} | |
// make sure the aggregated status is failed | |
assertEquals(status,false); | |
assertEquals(mapReduceResponse.isSuccess(),false); | |
} | |
@Test | |
public void testMapReducedJobsWithFailFastSyncFirstAllSuccess(){ | |
// example of ignite jobs, all succeeded , so the reducer collect all and return successfully | |
IgniteCallable validationServiceJob1=() -> ServiceResponse.<String>builder().serviceOrigin("job1") | |
.response("Job 1 is valid").success(true).build(); | |
IgniteCallable validationServiceJob2=() -> ServiceResponse.<String>builder().serviceOrigin("job2") | |
.response("Job 2 is valid").success(true).build(); | |
IgniteCallable validationServiceJob3=() -> ServiceResponse.<String>builder().serviceOrigin("job3") | |
.response("Job 3 is valid").success(true).build(); | |
final MapReduceResponse mapReduceResponse = computeService.validateWithAllServicesInParallelSync( | |
Arrays.asList(validationServiceJob1,validationServiceJob2,validationServiceJob3) | |
); | |
boolean status=true; | |
for(ServiceResponse serviceResponse: mapReduceResponse.getReducedResponses().values()){ | |
status=status && serviceResponse.isSuccess(); | |
} | |
// make sure the aggregated status is success | |
assertEquals(status,true); | |
assertEquals(mapReduceResponse.isSuccess(),true); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment