X-Git-Url: https://git.sthu.org/?a=blobdiff_plain;f=paralleljobs.py;h=cb4a0691da479eed4ef87da1255951a22e17f484;hb=d073e6e6b6af04799080b004a6cf2dbed12a96c3;hp=f2e6eea15828b9c080945232db2b4d8e10c8dd92;hpb=a2f946a6b7a771f86b0ad07e01504f3b77d1ba63;p=paralleljobs.git diff --git a/paralleljobs.py b/paralleljobs.py index f2e6eea..cb4a069 100755 --- a/paralleljobs.py +++ b/paralleljobs.py @@ -66,12 +66,13 @@ def runCmd(cmd): return exitcode, out, err def processJob(conn, jobid): - print("Process job %d" % (jobid)) c = conn.cursor() c.execute("SELECT cmd FROM jobs WHERE id=?", (jobid,)) cmd, = c.fetchone() + print("Process job %d: %s" % (jobid, cmd)) + ec, out, err = runCmd(cmd) c.execute("UPDATE jobs SET exitcode=?, done=1 WHERE id=?;", (ec, jobid)) @@ -166,8 +167,9 @@ COMMANDS: 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 + -v verbose output Commands may be combined in one call of {0}. @@ -206,9 +208,10 @@ if __name__ == "__main__": propdef = None work = False status = False + numjobs = None try: - opts, args = getopt.getopt(sys.argv[1:], "hd:c:p:wsv") + opts, args = getopt.getopt(sys.argv[1:], "hd:c:p:wsvn:") for opt, arg in opts: if opt == "-h": @@ -226,6 +229,8 @@ if __name__ == "__main__": status = True elif opt == "-v": verbose = True + elif opt == "-n": + numjobs = int(arg) else: print("Unknown option '", opt, "'.") @@ -254,12 +259,15 @@ if __name__ == "__main__": 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) + n += 1 conn.close()