[
https://issues.apache.org/jira/browse/LANG-1085?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14566053#comment-14566053
]
Oliver Heger commented on LANG-1085:
------------------------------------
Hi Bruno,
I had a look at your code. Great stuff! It is especially good to see that you
managed to use the basic circuit breaker interface for different use cases
(memory usage and timing conditions). I think this is a proof of concept that
the interface we came up with is sufficiently generic.
Some remarks about details:
* When I wrote my original implementation I had complex if-then-else cascades
related to the current state of the circuit breaker. I could significantly
simplify the code by refactoring logic out into the State enumeration class. As
State is now more generic in your model, you had to move this logic out of the
class, and volia - here the if-then-else blocks are again! Maybe we can
work-around this by using strategy classes associated with the different states.
* TimedCircuitBreaker is pretty straight-forward - which is a good thing. Does
it make sense to have logic to close the circuit breaker automatically when
memory usage is decreasing again?
> Add a circuit breaker implementation
> ------------------------------------
>
> Key: LANG-1085
> URL: https://issues.apache.org/jira/browse/LANG-1085
> Project: Commons Lang
> Issue Type: New Feature
> Components: lang.concurrent.*
> Reporter: Oliver Heger
> Attachments: CircuitBreaker.java, CircuitBreakerTest.java
>
>
> A _circuit breaker_ is a useful component to protect an application against
> unreliable services or load peaks. A simple implementation could be a good
> fit for the concurrent package.
> A proposed implementation is attached. Feedback is welcome!
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)