projects
/
paralleljobs.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add option -n
[paralleljobs.git]
/
paralleljobs.py
diff --git
a/paralleljobs.py
b/paralleljobs.py
index c9e313d185b1fd5a7bccb2cd1a89bac53772faae..baf79651b101056abf7eb20513c73303e8cbf695 100755
(executable)
--- a/
paralleljobs.py
+++ b/
paralleljobs.py
@@
-1,4
+1,12
@@
-#!/usr/bin/python
+#!/usr/bin/env python
+""" A simple tool to run jobs from a database in parallel."""
+
+__author__ = "Stefan Huber"
+__copyright__ = "Copyright 2013"
+
+__version__ = "1.0"
+__license__ = "LGPL3"
+
import sys, getopt, os
import sqlite3
import sys, getopt, os
import sqlite3
@@
-25,7
+33,6
@@
def printStatusInfo(conn):
c.close()
c.close()
- print(nototal, nodone, wldone, wltotal)
perdone = 100.0*float(nodone)/float(nototal)
perwl = 100.0*float(wldone)/float(wltotal)
perdone = 100.0*float(nodone)/float(nototal)
perwl = 100.0*float(wldone)/float(wltotal)
@@
-159,6
+166,7
@@
COMMANDS:
OPTIONS:
-d database the database to process
OPTIONS:
-d database the database to process
+ -n num in -w mode, only perform num-many jobs
-p cols-def create properties table with SQL column spec
-v print output of the job's command
-p cols-def create properties table with SQL column spec
-v print output of the job's command
@@
-199,9
+207,10
@@
if __name__ == "__main__":
propdef = None
work = False
status = False
propdef = None
work = False
status = False
+ numjobs = None
try:
try:
- opts, args = getopt.getopt(sys.argv[1:], "hd:c:p:wsv")
+ opts, args = getopt.getopt(sys.argv[1:], "hd:c:p:wsv
n:
")
for opt, arg in opts:
if opt == "-h":
for opt, arg in opts:
if opt == "-h":
@@
-219,6
+228,8
@@
if __name__ == "__main__":
status = True
elif opt == "-v":
verbose = True
status = True
elif opt == "-v":
verbose = True
+ elif opt == "-n":
+ numjobs = int(arg)
else:
print("Unknown option '", opt, "'.")
else:
print("Unknown option '", opt, "'.")
@@
-247,12
+258,15
@@
if __name__ == "__main__":
insertJobs(conn, cmds)
if work:
insertJobs(conn, cmds)
if work:
- while True:
+ n = 0
+ while not numjobs or n < numjobs:
+
jobid = getNextJobId(conn)
if jobid == None:
print("All jobs have been started.")
break
processJob(conn, jobid)
jobid = getNextJobId(conn)
if jobid == None:
print("All jobs have been started.")
break
processJob(conn, jobid)
+ n += 1
conn.close()
conn.close()