Changeset 112 for projects/AsynQueue/trunk/asynqueue/base.py
- Timestamp:
- 11/26/07 16:30:56 (1 year ago)
- Files:
-
- projects/AsynQueue/trunk/asynqueue/base.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
projects/AsynQueue/trunk/asynqueue/base.py
r90 r112 189 189 break 190 190 wfd = defer.waitForDeferred(self.mgr.assignment(task)) 191 yield wfd 191 yield wfd; wfd.getResult() 192 192 # Clean up after the loop exits 193 193 wfd = defer.waitForDeferred(self.mgr.shutdown(self.timeout)) … … 195 195 self.heap.shutdown() 196 196 # The result of the runner is a list of any unfinished tasks. 197 yield wfd.getResult() 197 result = [] 198 try: 199 result = wfd.getResult() 200 except: 201 pass 202 yield result 198 203 199 204 if self.isRunning(): … … 248 253 if worker == workerOrID: 249 254 return thisID 250 raise ValueError("No such worker")251 255 252 256 def detachWorker(self, workerOrID, reassign=False, crash=False): … … 261 265 See L{tasks.WorkerManager.terminate}. 262 266 """ 263 def terminated(unfinishedTasks):264 for task in unfinishedTasks:265 self.mgr.assignment(task)266 267 267 ID = self._getWorkerID(workerOrID) 268 if ID is None: 269 return 268 270 if crash: 269 d = self.mgr.terminate(ID, crash=True )271 d = self.mgr.terminate(ID, crash=True, reassign=reassign) 270 272 else: 271 d = self.mgr.terminate(ID, self.timeout) 272 if reassign: 273 d.addCallback(terminated) 273 d = self.mgr.terminate(ID, self.timeout, reassign=reassign) 274 274 return d 275 275
