@@ -55,35 +55,29 @@ def update_state(self, k, v, save=True):
5555 if save :
5656 self .save_state ()
5757
58- def dict2str (self , d ):
59- res = []
60- for k in d :
61- res .append (k )
62- res .append (str (d [k ]))
63- return '_' .join (res )
64-
65-
66- def is_unstarted (self , k ):
58+ def get_state (self , k ):
6759 key = self .dict2str (k )
68- if key not in self .state :
69- self .update_state (k , 2 , False )
70- return True
7160
72- if key in self .state :
73- if not 'Done' in self .state [key ] and not 'Started' in self .state [key ]:
74- self .update_state (k , 2 , False )
75- return True
76- return False
61+ self .load ()
7762
78- def is_done (self , k ):
79- key = self .dict2str (k )
8063 if key not in self .state :
81- self . update_state ( k , 2 , True )
82- return False
64+ return 2
65+
8366 if key in self .state :
8467 if 'Done' in self .state [key ]:
85- return True
86- return False
68+ return 0
69+ if 'Started' in self .state [key ]:
70+ return 1
71+ if 'Unstarted' in self .state [key ]:
72+ return 2
73+ return 2
74+
75+ def dict2str (self , d ):
76+ res = []
77+ for k in d :
78+ res .append (k )
79+ res .append (str (d [k ]))
80+ return '_' .join (res )
8781
8882class BatchTasks (object ):
8983
@@ -126,6 +120,13 @@ def run_single(self):
126120 while not self .task_q .empty ():
127121 task = self .task_q .get ()
128122
123+ lock .acquire ()
124+ state = self .ts .get_state (task )
125+ lock .release ()
126+
127+ if state != 2 :
128+ continue
129+
129130 dirname = self .generate_directory (task )
130131 if not os .path .exists (dirname ):
131132 os .makedirs (dirname )
@@ -144,18 +145,11 @@ def run_single(self):
144145
145146 time .sleep (self .waiting_time )
146147
147- def start (self , run_started = False ):
148+ def start (self ):
148149
149150 self .task_q = Queue ()
150151 for task in self .tasks :
151- if run_started :
152- if not self .ts .is_done (task ):
153- self .task_q .put (task )
154- else :
155- if self .ts .is_unstarted (task ):
156- self .task_q .put (task )
157-
158- self .ts .save_state ()
152+ self .task_q .put (task )
159153
160154 self .threads = []
161155
0 commit comments