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
|
Router endpoints for the _____ module
|
||||||
|
|
||||||
Endpoints:
|
Endpoints:
|
||||||
|
- /timer/start
|
||||||
|
- /timer/stop
|
||||||
"""
|
"""
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
|
|
@ -20,9 +22,10 @@ async def start_timer(request: Request, interval: int):
|
||||||
|
|
||||||
stop_event = threading.Event()
|
stop_event = threading.Event()
|
||||||
timer = create_timer(func=example_timer_target, interval=interval, stop_event=stop_event)
|
timer = create_timer(func=example_timer_target, interval=interval, stop_event=stop_event)
|
||||||
|
timer_ident = "example_timer"
|
||||||
|
|
||||||
timer_tracker = {
|
timer_tracker = {
|
||||||
"ident": "example_timer",
|
"ident": timer_ident,
|
||||||
"interval": interval,
|
"interval": interval,
|
||||||
"stop_event": stop_event,
|
"stop_event": stop_event,
|
||||||
"timer": timer
|
"timer": timer
|
||||||
|
|
@ -31,11 +34,13 @@ async def start_timer(request: Request, interval: int):
|
||||||
|
|
||||||
request.app.state.timers.append(timer_tracker)
|
request.app.state.timers.append(timer_tracker)
|
||||||
|
|
||||||
|
return {"timer_ident": timer_ident, "interval": interval}
|
||||||
|
|
||||||
|
|
||||||
@router.put("/timer/stop")
|
@router.put("/timer/stop")
|
||||||
async def stop_timer(request: Request, ident: str):
|
async def stop_timer(request: Request, ident: str):
|
||||||
timers = request.app.state.timers
|
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))
|
idx, timer_tracker = next(((i, timer) for i, timer in enumerate(timers) if timer["ident"] == ident), (None, None))
|
||||||
|
|
||||||
if not timer_tracker:
|
if not timer_tracker:
|
||||||
|
|
@ -45,4 +50,5 @@ async def stop_timer(request: Request, ident: str):
|
||||||
timer_tracker["timer"].join()
|
timer_tracker["timer"].join()
|
||||||
timer_tracker["timer"] = None
|
timer_tracker["timer"] = None
|
||||||
timers.pop(idx)
|
timers.pop(idx)
|
||||||
print(timers)
|
|
||||||
|
return {"timer_ident": ident, "status": "stopped"}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue