MCPcopy Create free account
hub / github.com/InfinitiBit/graphbit / get_circuit_breaker

Method get_circuit_breaker

core/src/workflow.rs:288–303  ·  view source on GitHub ↗

Get or create circuit breaker for an agent

(&self, agent_id: &crate::types::AgentId)

Source from the content-addressed store, hash-verified

286
287 /// Get or create circuit breaker for an agent
288 async fn get_circuit_breaker(&self, agent_id: &crate::types::AgentId) -> CircuitBreaker {
289 // Try to read first (more efficient for existing breakers)
290 {
291 let breakers = self.circuit_breakers.read().await;
292 if let Some(breaker) = breakers.get(agent_id) {
293 return breaker.clone();
294 }
295 }
296
297 // If not found, acquire write lock and create
298 let mut breakers = self.circuit_breakers.write().await;
299 breakers
300 .entry(agent_id.clone())
301 .or_insert_with(|| CircuitBreaker::new(self.circuit_breaker_config.clone()))
302 .clone()
303 }
304
305 /// Get current concurrency limit
306 pub async fn max_concurrency(&self) -> usize {

Callers 1

execute_internalMethod · 0.80

Calls 2

cloneMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected