Class CircuitBreaker
java.lang.Object
desmoj.core.simulator.NamedObject
desmoj.core.simulator.ModelComponent
desmoj.core.simulator.Schedulable
desmoj.core.simulator.Entity
de.rss.fachstudie.MiSim.entities.patterns.Pattern
de.rss.fachstudie.MiSim.entities.patterns.InstanceOwnedPattern
de.rss.fachstudie.MiSim.entities.patterns.NetworkPattern
de.rss.fachstudie.MiSim.entities.patterns.CircuitBreaker
- All Implemented Interfaces:
IRequestUpdateListener,Comparable<IRequestUpdateListener>
public final class CircuitBreaker extends NetworkPattern implements IRequestUpdateListener
Manager class of all CircuitBreakers of one Microservice Instance.
Creates a CircuitBreakerState for each connection to another Microservice of the owning
MicroserviceInstance
This class is a NetworkPattern and therefore monitors all requests send by its owning
MicroserviceInstance.
- Author:
- Lion Wagner
- See Also:
CircuitBreakerState,Microservice,MicroserviceInstance
-
Field Summary
Fields inherited from class de.rss.fachstudie.MiSim.entities.patterns.InstanceOwnedPattern
ownerFields inherited from class desmoj.core.simulator.Schedulable
_schedule -
Constructor Summary
Constructors Constructor Description CircuitBreaker(desmoj.core.simulator.Model model, String name, boolean showInTrace, MicroserviceInstance owner) -
Method Summary
Modifier and Type Method Description intgetListeningPriority()booleanonRequestArrivalAtTarget(Request request, desmoj.core.simulator.TimeInstant when)Listener for the successful completion of the sending process.booleanonRequestFailed(Request request, desmoj.core.simulator.TimeInstant when, RequestFailedReason reason)Listener for the failure of the sending process.booleanonRequestResultArrivedAtRequester(Request request, desmoj.core.simulator.TimeInstant when)Listener for the successful receiving of the answer of a request.booleanonRequestSend(Request request, desmoj.core.simulator.TimeInstant when)Listener for the send-off of a request.voidshutdown()Will be called by the owning instance upon an unexpected shutdown (kill)Methods inherited from class de.rss.fachstudie.MiSim.entities.patterns.Pattern
initFields, onFieldInitCompletedMethods inherited from class desmoj.core.simulator.Entity
clone, generateTraceForScheduling, getIdentNumber, getQueueingPriority, getQueues, getScheduledEvents, isEqual, isLarger, isLargerOrEqual, isNotEqual, isQueued, isSimProcess, isSmaller, isSmallerOrEqual, schedule, schedule, schedule, schedule, schedule, schedule, schedule, schedule, schedule, scheduleAfter, scheduleAfter, scheduleAfter, scheduleBefore, scheduleBefore, scheduleBefore, schedulePreempt, schedulePreempt, schedulePreempt, setQueueingPriorityMethods inherited from class desmoj.core.simulator.Schedulable
assignReporter, cancel, getCorrespondingReportable, isCurrent, isScheduled, rename, reSchedule, reSchedule, reSchedulePreempt, scheduledNext, setCorrespondingReportableMethods inherited from class desmoj.core.simulator.ModelComponent
current, currentEntity, currentEntityAll, currentEvent, currentlySendDebugNotes, currentlySendTraceNotes, currentModel, currentSimProcess, debugIsOn, debugOff, debugOn, getModel, isExperimentCompatible, isModelCompatible, presentTime, sendDebugNote, sendMessage, sendTraceNote, sendWarning, skipTraceNote, skipTraceNote, traceIsOn, traceOff, traceOnMethods inherited from class desmoj.core.simulator.NamedObject
getName, getQuotedName, toStringMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface de.rss.fachstudie.MiSim.entities.networking.IRequestUpdateListener
compareTo
-
Constructor Details
-
CircuitBreaker
public CircuitBreaker(desmoj.core.simulator.Model model, String name, boolean showInTrace, MicroserviceInstance owner)
-
-
Method Details
-
getListeningPriority
public int getListeningPriority()- Specified by:
getListeningPriorityin interfaceIRequestUpdateListener- Returns:
- the Priority of this Listener. Defaults to
Priority#NORMAL - See Also:
Priority
-
shutdown
public void shutdown()Description copied from class:PatternWill be called by the owning instance upon an unexpected shutdown (kill) -
onRequestSend
Description copied from interface:IRequestUpdateListenerListener for the send-off of a request. Provides the send request.- Specified by:
onRequestSendin interfaceIRequestUpdateListener- Parameters:
request- request that triggered this eventwhen- time of this event- Returns:
- true if the request was terminally handled (consumed) by this instance
-
onRequestArrivalAtTarget
Description copied from interface:IRequestUpdateListenerListener for the successful completion of the sending process. Provides a reference to the successfully arrived request.- Specified by:
onRequestArrivalAtTargetin interfaceIRequestUpdateListener- Parameters:
request- request that triggered this eventwhen- time of this event- Returns:
- true if the request was terminally handled (consumed) by this instance
-
onRequestResultArrivedAtRequester
public boolean onRequestResultArrivedAtRequester(Request request, desmoj.core.simulator.TimeInstant when)Description copied from interface:IRequestUpdateListenerListener for the successful receiving of the answer of a request.- Specified by:
onRequestResultArrivedAtRequesterin interfaceIRequestUpdateListener- Parameters:
request- request that triggered this eventwhen- time of this event- Returns:
- true if the request was terminally handled (consumed) by this instance
-
onRequestFailed
public boolean onRequestFailed(Request request, desmoj.core.simulator.TimeInstant when, RequestFailedReason reason)Description copied from interface:IRequestUpdateListenerListener for the failure of the sending process. This could for example be due to the receiving service not being available, the request being canceled or timed out. Provides a reference to the failed request.- Specified by:
onRequestFailedin interfaceIRequestUpdateListener- Parameters:
request- request that triggered this eventwhen- time of this eventreason- reason why the request failed- Returns:
- true if the request was terminally handled (consumed) by this instance
-