33from queue import Empty , Queue
44import sys
55import threading
6+ from time import sleep
67import traceback
78
89logger = logging .getLogger (__name__ )
@@ -79,7 +80,7 @@ def get_ready_job(jobs):
7980
8081
8182def execute_jobs (
82- jobs , show_progress = False , number_of_workers = 10 , debug_jobs = False
83+ jobs , show_progress = False , number_of_workers = 10 , debug_jobs = False , delay_time = 0.0 ,
8384):
8485 global windows_force_posix
8586 from vcstool .streams import stdout
@@ -88,7 +89,6 @@ def execute_jobs(
8889
8990 if windows_force_posix :
9091 logger .debug ('force POSIX paths on Windows' )
91-
9292 results = []
9393
9494 job_queue = Queue ()
@@ -97,7 +97,7 @@ def execute_jobs(
9797 # create worker threads
9898 workers = []
9999 for _ in range (min (number_of_workers , len (jobs ))):
100- worker = Worker (job_queue , result_queue )
100+ worker = Worker (job_queue , result_queue , delay_time )
101101 workers .append (worker )
102102
103103 # fill job_queue with jobs for each worker
@@ -157,12 +157,13 @@ def execute_jobs(
157157
158158class Worker (threading .Thread ):
159159
160- def __init__ (self , job_queue , result_queue ):
160+ def __init__ (self , job_queue , result_queue , delay_time = 0.0 ):
161161 super (Worker , self ).__init__ ()
162162 self .daemon = True
163163 self .done = False
164164 self .job_queue = job_queue
165165 self .result_queue = result_queue
166+ self .delay_time = delay_time
166167
167168 def run (self ):
168169 # process all incoming jobs
@@ -174,6 +175,8 @@ def run(self):
174175 result = self .process_job (job )
175176 # send result
176177 self .result_queue .put ((job , result ))
178+ if self .delay_time > 0.0 :
179+ sleep (self .delay_time )
177180 except Empty :
178181 pass
179182
0 commit comments