Skip to content

Commit e1183b5

Browse files
author
Weiwei Wang
committed
update batch task
1 parent 72794a3 commit e1183b5

File tree

1 file changed

+26
-32
lines changed

1 file changed

+26
-32
lines changed

fidimag/common/batch_task.py

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -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

8882
class 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

Comments
 (0)