safraeli commited on
Commit
d81e798
·
verified ·
1 Parent(s): b3e1b1d

Update backend/workers/control_tick.py

Browse files
Files changed (1) hide show
  1. backend/workers/control_tick.py +11 -0
backend/workers/control_tick.py CHANGED
@@ -60,6 +60,17 @@ def main():
60
  safe = json.loads(json.dumps(result_dict, default=str))
61
  redis.set_json("control:last_tick", safe, ttl=1200) # 20 min TTL
62
  log.info("Tick result saved to Redis")
 
 
 
 
 
 
 
 
 
 
 
63
  else:
64
  log.warning("Redis not available — tick result not persisted")
65
 
 
60
  safe = json.loads(json.dumps(result_dict, default=str))
61
  redis.set_json("control:last_tick", safe, ttl=1200) # 20 min TTL
62
  log.info("Tick result saved to Redis")
63
+
64
+ # Also persist budget state for the /control/budget endpoint
65
+ budget_info = {
66
+ "energy_cost_kwh": result_dict.get("energy_cost_kwh", 0),
67
+ "budget_spent_kwh": result_dict.get("budget_spent_kwh", 0),
68
+ "budget_remaining_kwh": result_dict.get("budget_remaining_kwh", 0),
69
+ "daily_budget_kwh": 25.0 * 5.0 / 100.0, # MAX_ENERGY_REDUCTION_PCT
70
+ "stage": result_dict.get("stage_id", "unknown"),
71
+ "last_updated": datetime.now(timezone.utc).isoformat(),
72
+ }
73
+ redis.set_json("control:budget", budget_info, ttl=1800) # 30 min TTL
74
  else:
75
  log.warning("Redis not available — tick result not persisted")
76