File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 55import random
66import inspect
77from tqdm import tqdm
8+ from .hash import key_hash
89from .expression import QueryExpression , AndList
910from .errors import DataJointError , LostConnectionError
1011import signal
@@ -202,6 +203,16 @@ def handler(signum, frame):
202203 old_handler = signal .signal (signal .SIGTERM , handler )
203204
204205 keys = (self ._jobs_to_do (restrictions ) - self .target ).fetch ("KEY" , limit = limit )
206+
207+ # exclude "error" or "ignore" jobs
208+ if reserve_jobs :
209+ exclude_key_hashes = (
210+ jobs
211+ & {"table_name" : self .target .table_name }
212+ & 'status in ("error", "ignore")'
213+ ).fetch ("key_hash" )
214+ keys = [key for key in keys if key_hash (key ) not in exclude_key_hashes ]
215+
205216 if order == "reverse" :
206217 keys .reverse ()
207218 elif order == "random" :
You can’t perform that action at this time.
0 commit comments