1
1
import logging
2
2
import threading
3
- import time
4
3
5
4
from django .db import IntegrityError
6
5
7
- from telemetry .models import Driver , Game , Session , SessionType
6
+ from telemetry .models import Driver , Game , SessionType
8
7
9
8
10
9
class SessionSaver :
@@ -22,47 +21,47 @@ def stop(self):
22
21
def stopped (self ):
23
22
return self ._stop_event .is_set ()
24
23
25
- def save_sessions_loop (self ):
26
- while True and not self .stopped ():
27
- if self .save :
28
- self .save_sessions ()
29
- else :
30
- self .fetch_sessions ()
31
- self .ready = True
32
- time .sleep (self .sleep_time )
33
-
34
- def fetch_sessions (self ):
35
- session_ids = list (self .firehose .sessions .keys ())
36
- for session_id in session_ids :
37
- session = self .firehose .sessions .get (session_id )
38
- if not session .record :
39
- try :
40
- session .driver = Driver .objects .get (name = session .driver )
41
- session .game = Game .objects .get (name = session .game_name )
42
- session .session_type = SessionType .objects .get (type = session .session_type )
43
- session .car , created = session .game .cars .get_or_create (name = session .car )
44
- session .car .car_class , created = session .game .car_classes .get_or_create (name = session .car_class )
45
- session .track , created = session .game .tracks .get_or_create (name = session .track )
46
- session .record = session .driver .sessions .filter (
47
- session_id = session .session_id ,
48
- session_type = session .session_type ,
49
- game = session .game ,
50
- car = session .car ,
51
- track = session .track ,
52
- ).first () or Session (
53
- session_id = session .session_id ,
54
- session_type = session .session_type ,
55
- game = session .game ,
56
- car = session .car ,
57
- track = session .track ,
58
- start = session .start ,
59
- end = session .end ,
60
- )
61
- logging .debug (f"{ session .session_id } : Fetched session { session_id } " )
62
- except Exception as e :
63
- # TODO add error to session to expire
64
- logging .error (f"{ session .session_id } : Error fetching session { session_id } : { e } " )
65
- continue
24
+ # def save_sessions_loop(self):
25
+ # while True and not self.stopped():
26
+ # if self.save:
27
+ # self.save_sessions()
28
+ # else:
29
+ # self.fetch_sessions()
30
+ # self.ready = True
31
+ # time.sleep(self.sleep_time)
32
+
33
+ # def fetch_sessions(self):
34
+ # session_ids = list(self.firehose.sessions.keys())
35
+ # for session_id in session_ids:
36
+ # session = self.firehose.sessions.get(session_id)
37
+ # if not session.record:
38
+ # try:
39
+ # session.driver = Driver.objects.get(name=session.driver)
40
+ # session.game = Game.objects.get(name=session.game_name)
41
+ # session.session_type = SessionType.objects.get(type=session.session_type)
42
+ # session.car, created = session.game.cars.get_or_create(name=session.car)
43
+ # session.car.car_class, created = session.game.car_classes.get_or_create(name=session.car_class)
44
+ # session.track, created = session.game.tracks.get_or_create(name=session.track)
45
+ # session.record = session.driver.sessions.filter(
46
+ # session_id=session.session_id,
47
+ # session_type=session.session_type,
48
+ # game=session.game,
49
+ # car=session.car,
50
+ # track=session.track,
51
+ # ).first() or Session(
52
+ # session_id=session.session_id,
53
+ # session_type=session.session_type,
54
+ # game=session.game,
55
+ # car=session.car,
56
+ # track=session.track,
57
+ # start=session.start,
58
+ # end=session.end,
59
+ # )
60
+ # logging.debug(f"{session.session_id}: Fetched session {session_id}")
61
+ # except Exception as e:
62
+ # # TODO add error to session to expire
63
+ # logging.error(f"{session.session_id}: Error fetching session {session_id}: {e}")
64
+ # continue
66
65
67
66
def save_sessions (self ):
68
67
session_ids = list (self .firehose .sessions .keys ())
@@ -85,14 +84,11 @@ def save_sessions(self):
85
84
(
86
85
session .record ,
87
86
created ,
88
- ) = session .driver .sessions .get_or_create (
89
- session_id = session .session_id ,
90
- session_type = session .session_type ,
91
- game = session .game ,
92
- car = session .car ,
93
- track = session .track ,
94
- defaults = {"start" : session .start , "end" : session .end },
95
- )
87
+ ) = session .driver .sessions .get_or_create (session_id = session .session_id , session_type = session .session_type , game = session .game )
88
+ session .record .car = session .car
89
+ session .record .track = session .track
90
+ session .record .start = session .start
91
+ session .record .save_dirty_fields ()
96
92
logging .debug (f"{ session .session_id } : Saving session { session_id } " )
97
93
except Exception as e :
98
94
# TODO add error to session to expire
@@ -151,5 +147,5 @@ def save_sessions(self):
151
147
track .length = lap_length
152
148
track .save ()
153
149
154
- def run (self ):
155
- self .save_sessions_loop ()
150
+ # def run(self):
151
+ # self.save_sessions_loop()
0 commit comments