timer example responses
This commit is contained in:
parent
8f908ac317
commit
ed4a3fe0b8
1 changed files with 9 additions and 3 deletions
|
|
@ -2,6 +2,8 @@
|
|||
Router endpoints for the _____ module
|
||||
|
||||
Endpoints:
|
||||
- /timer/start
|
||||
- /timer/stop
|
||||
"""
|
||||
import threading
|
||||
|
||||
|
|
@ -20,9 +22,10 @@ async def start_timer(request: Request, interval: int):
|
|||
|
||||
stop_event = threading.Event()
|
||||
timer = create_timer(func=example_timer_target, interval=interval, stop_event=stop_event)
|
||||
timer_ident = "example_timer"
|
||||
|
||||
timer_tracker = {
|
||||
"ident": "example_timer",
|
||||
"ident": timer_ident,
|
||||
"interval": interval,
|
||||
"stop_event": stop_event,
|
||||
"timer": timer
|
||||
|
|
@ -31,11 +34,13 @@ async def start_timer(request: Request, interval: int):
|
|||
|
||||
request.app.state.timers.append(timer_tracker)
|
||||
|
||||
return {"timer_ident": timer_ident, "interval": interval}
|
||||
|
||||
|
||||
@router.put("/timer/stop")
|
||||
async def stop_timer(request: Request, ident: str):
|
||||
timers = request.app.state.timers
|
||||
print(timers)
|
||||
|
||||
idx, timer_tracker = next(((i, timer) for i, timer in enumerate(timers) if timer["ident"] == ident), (None, None))
|
||||
|
||||
if not timer_tracker:
|
||||
|
|
@ -45,4 +50,5 @@ async def stop_timer(request: Request, ident: str):
|
|||
timer_tracker["timer"].join()
|
||||
timer_tracker["timer"] = None
|
||||
timers.pop(idx)
|
||||
print(timers)
|
||||
|
||||
return {"timer_ident": ident, "status": "stopped"}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue