Changes based on review feedback.
This commit is contained in:
@ -3,7 +3,7 @@ layout: pattern
|
||||
title: Event-based Asynchronous
|
||||
folder: event-asynchronous
|
||||
permalink: /patterns/event-asynchronous/
|
||||
categories: Other
|
||||
categories: Concurrency
|
||||
tags:
|
||||
- difficulty-intermediate
|
||||
- performance
|
||||
|
@ -106,23 +106,23 @@ public class App {
|
||||
try {
|
||||
// Create an Asynchronous event.
|
||||
int aEventId = eventManager.createAsync(60);
|
||||
System.out.println("Event [" + aEventId + "] has been created.");
|
||||
System.out.println("Async Event [" + aEventId + "] has been created.");
|
||||
eventManager.start(aEventId);
|
||||
System.out.println("Event [" + aEventId + "] has been started.");
|
||||
System.out.println("Async Event [" + aEventId + "] has been started.");
|
||||
|
||||
// Create a Synchronous event.
|
||||
int sEventId = eventManager.create(60);
|
||||
System.out.println("Event [" + sEventId + "] has been created.");
|
||||
System.out.println("Sync Event [" + sEventId + "] has been created.");
|
||||
eventManager.start(sEventId);
|
||||
System.out.println("Event [" + sEventId + "] has been started.");
|
||||
System.out.println("Sync Event [" + sEventId + "] has been started.");
|
||||
|
||||
eventManager.status(aEventId);
|
||||
eventManager.status(sEventId);
|
||||
|
||||
eventManager.cancel(aEventId);
|
||||
System.out.println("Event [" + aEventId + "] has been stopped.");
|
||||
System.out.println("Async Event [" + aEventId + "] has been stopped.");
|
||||
eventManager.cancel(sEventId);
|
||||
System.out.println("Event [" + sEventId + "] has been stopped.");
|
||||
System.out.println("Sync Event [" + sEventId + "] has been stopped.");
|
||||
|
||||
} catch (MaxNumOfEventsAllowedException | LongRunningEventException | EventDoesNotExistException
|
||||
| InvalidOperationException e) {
|
||||
|
@ -75,7 +75,7 @@ public class Event implements IEvent, Runnable {
|
||||
long endTime = currentTime + (eventTime * 1000);
|
||||
while (System.currentTimeMillis() < endTime) {
|
||||
try {
|
||||
Thread.sleep(5000); // Sleep for 5 seconds.
|
||||
Thread.sleep(1000); // Sleep for 1 second.
|
||||
} catch (InterruptedException e) {
|
||||
return;
|
||||
}
|
||||
|
@ -79,4 +79,56 @@ public class EventAsynchronousTest {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFullSynchronousEvent() {
|
||||
EventManager eventManager = new EventManager();
|
||||
try {
|
||||
int eventTime = 5;
|
||||
|
||||
int sEventId = eventManager.create(eventTime);
|
||||
assertTrue(eventManager.getEventPool().size() == 1);
|
||||
eventManager.start(sEventId);
|
||||
|
||||
long currentTime = System.currentTimeMillis();
|
||||
long endTime = currentTime + (eventTime + 5 * 1000); // +5 to give a bit of buffer time for event to complete
|
||||
// properly.
|
||||
while (System.currentTimeMillis() < endTime) {
|
||||
}
|
||||
|
||||
assertTrue(eventManager.getEventPool().size() == 0);
|
||||
|
||||
} catch (MaxNumOfEventsAllowedException | LongRunningEventException | EventDoesNotExistException
|
||||
| InvalidOperationException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFullAsynchronousEvent() {
|
||||
EventManager eventManager = new EventManager();
|
||||
try {
|
||||
int eventTime = 5;
|
||||
|
||||
int aEventId1 = eventManager.createAsync(eventTime);
|
||||
int aEventId2 = eventManager.createAsync(eventTime);
|
||||
int aEventId3 = eventManager.createAsync(eventTime);
|
||||
assertTrue(eventManager.getEventPool().size() == 3);
|
||||
|
||||
eventManager.start(aEventId1);
|
||||
eventManager.start(aEventId2);
|
||||
eventManager.start(aEventId3);
|
||||
|
||||
long currentTime = System.currentTimeMillis();
|
||||
long endTime = currentTime + (eventTime + 5 * 1000); // +5 to give a bit of buffer time for event to complete
|
||||
// properly.
|
||||
while (System.currentTimeMillis() < endTime) {
|
||||
}
|
||||
|
||||
assertTrue(eventManager.getEventPool().size() == 0);
|
||||
|
||||
} catch (MaxNumOfEventsAllowedException | LongRunningEventException | EventDoesNotExistException e) {
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user