This repository was archived by the owner on Sep 19, 2024. It is now read-only.
File tree 8 files changed +35
-1
lines changed
8 files changed +35
-1
lines changed Original file line number Diff line number Diff line change 66
66
"title" : " Status" ,
67
67
"websocket" : " Websocket" ,
68
68
"app_version" : " Application version: " ,
69
+ "worker_last_run" : " Worker last run" ,
69
70
"debrider" : " Debrider" ,
70
71
"downloader" : " Downloader" ,
71
72
"restart" : " Restart" ,
Original file line number Diff line number Diff line change 65
65
"title" : " États" ,
66
66
"websocket" : " Websocket" ,
67
67
"app_version" : " Version de l'application : " ,
68
+ "worker_last_run" : " Dernière exécution du worker :" ,
68
69
"debrider" : " Débrideur" ,
69
70
"downloader" : " Téléchargeur" ,
70
71
"restart" : " Redémarrer" ,
Original file line number Diff line number Diff line change 1
1
export type Status = {
2
2
app : {
3
3
version : string ;
4
+ worker : {
5
+ last_run : string ;
6
+ } ;
4
7
} ;
5
8
debrider : {
6
9
id : string ;
Original file line number Diff line number Diff line change @@ -52,6 +52,20 @@ const Status = () => {
52
52
{ isLoading ? t ( "loading" ) : status ?. app . version }
53
53
</ code >
54
54
</ div >
55
+ < div >
56
+ { t ( "status.worker_last_run" ) } { " " }
57
+ < code
58
+ className = { classNames ( classes . code , {
59
+ [ classes . pending ] : isLoading ,
60
+ } ) }
61
+ >
62
+ { isLoading
63
+ ? t ( "loading" )
64
+ : new Date (
65
+ status ?. app . worker . last_run as any
66
+ ) . toLocaleString ( ) }
67
+ </ code >
68
+ </ div >
55
69
< div className = { classes . spacer } />
56
70
< hr className = { classes . separator } />
57
71
< div className = { classes . spacer } />
Original file line number Diff line number Diff line change @@ -78,8 +78,12 @@ class StatusElement(BaseModel):
78
78
name : str
79
79
connected : bool
80
80
81
+ class WorkerElement (BaseModel ):
82
+ last_run : datetime | None
83
+
81
84
class StatusApp (BaseModel ):
82
85
version : str
86
+ worker : WorkerElement
83
87
84
88
class Status (BaseModel ):
85
89
app : StatusApp
Original file line number Diff line number Diff line change 2
2
from holerr .downloaders import downloader
3
3
from .routers_models import Status
4
4
from holerr .utils import info
5
+ from holerr .tasks import worker
5
6
6
7
from fastapi import APIRouter
7
8
@@ -13,6 +14,9 @@ async def get_status():
13
14
return {
14
15
"app" : {
15
16
"version" : info .get_app_version (),
17
+ "worker" : {
18
+ "last_run" : worker .last_run ,
19
+ }
16
20
},
17
21
"debrider" : {
18
22
"id" : debrider .get_id (),
Original file line number Diff line number Diff line change 3
3
4
4
import asyncio
5
5
import threading
6
+ from datetime import datetime
6
7
7
8
log = Log .get_logger (__name__ )
8
9
9
10
10
11
class Worker :
11
12
_worker : threading .Thread = None
12
13
_tasks : list [Task ] = []
14
+ last_run : datetime = None
13
15
14
16
def add (self , task : Task ):
15
17
log .debug (type (task ).__name__ + " added" )
@@ -35,5 +37,9 @@ async def _run(self):
35
37
log .debug ("Starting workers" )
36
38
while True :
37
39
for task in self ._tasks :
38
- await task .run ()
40
+ try :
41
+ await task .run ()
42
+ except Exception as e :
43
+ log .error (f"Error while running task, { e } " )
44
+ self .last_run = datetime .now ()
39
45
await asyncio .sleep (5 )
Original file line number Diff line number Diff line change @@ -25,6 +25,7 @@ SQLAlchemy==2.0.29
25
25
starlette == 0.37.2
26
26
torf == 4.2.6
27
27
typing_extensions == 4.11.0
28
+ tzdata == 2024.1
28
29
urllib3 == 2.2.1
29
30
uvicorn == 0.29.0
30
31
uvloop == 0.19.0
You can’t perform that action at this time.
0 commit comments