]> err.no Git - dak/commitdiff
dak/show_new.py: use apply_async instead of map_async
authorAnsgar Burchardt <ansgar@debian.org>
Mon, 7 Jan 2013 09:32:19 +0000 (10:32 +0100)
committerAnsgar Burchardt <ansgar@debian.org>
Mon, 7 Jan 2013 09:35:28 +0000 (10:35 +0100)
The map variant established multiple database connections in each worker
exceeding the maximum number of connections configured in PostgreSQL.
apply_async doesn't have this problem with our wrapper in DakProcessPool.

However as a regression we longer have a timeout and always have to wait for
the job to finish. This could be worked around by using the timeout function
for individual results.

dak/show_new.py

index 488005636e09c9ef17f597091b1ae440a620db1b..2ec2c3518bae47d43c3104eba8f54561be416d7e 100755 (executable)
@@ -256,10 +256,12 @@ def main():
     upload_ids = [ u.id for u in init(session) ]
     session.close()
 
-    p = pool.map_async(do_pkg, upload_ids)
+    for upload_id in upload_ids:
+        pool.apply_async(do_pkg, [upload_id])
     pool.close()
 
-    p.wait(timeout=600)
+    #p.wait(timeout=600)
+    pool.join()
     for htmlfile in htmlfiles_to_process:
         with open(htmlfile, "w") as fd:
             fd.write(timeout_str)