# # Create custom graph # command = "sleep `shuf -i %d-%d -n 1`" % (options.min, options.max ) args = { "args": command, "start":1, "end":options.num, "packetSize":1 } tags = { "prod":"test", "shot":"test", "nbFrames":options.num } runner = "puliclient.contrib.commandlinerunner.CommandLineRunner" if options.lic != "": lic=options.lic else: lic=None simpleTask = Task( name="NoLic", arguments=args, tags=tags, runner=runner, lic=None ) graph = Graph(options.jobname, poolName='default', tags=tags) tg = graph.addNewTaskGroup( name="TG") tg.addNewTask( name="Lic", arguments=args, tags=tags, runner=runner, lic=lic ) tg2 = graph.addNewTaskGroup( name="TG2") tg2.addTask( simpleTask ) if options.dump: print graph # # Execute # if options.execute: graph.execute() else: graph.submit(options.hostname, options.port)
2. a taskgroup waits the end of a task --> ok 3. a taskgroup waits the end of a taskgroup --> ok """ from puliclient import Task, Graph, GraphDumper if __name__ == '__main__': args = { "cmd":"sleep 30", "start":1, "end":10, "packetSize":1 } tags = { "prod":"test", "shot":"test" } decomposer = "puliclient.contrib.generic.GenericDecomposer" # # 1. a task waits the end of a taskgroup # graph = Graph('1st case', tags=tags) tg1 = graph.addNewTaskGroup( name="TG1" ) tg1.addNewTask( name="task1", arguments=args, tags=tags, decomposer=decomposer ) tg1.addNewTask( name="task2", arguments=args, tags=tags, decomposer=decomposer ) task3 = graph.addNewTask( name="task3", arguments=args, tags=tags, decomposer=decomposer ) graph.addEdges( [(tg1, task3)] ) graph.submit("pulitest", 8004) # # 2. a taskgroup waits the end of a task # graph = Graph('2nd case', tags=tags) tg1 = graph.addNewTaskGroup( name="TG1" ) tg1.addNewTask( name="task1", arguments=args, tags=tags, decomposer=decomposer ) tg1.addNewTask( name="task2", arguments=args, tags=tags, decomposer=decomposer ) task3 = graph.addNewTask( name="task3", arguments=args, tags=tags, decomposer=decomposer )
# command = "sleep `shuf -i 20-30 -n 1`" # args = {"args": command, "start": 1, "end": 10, "packetSize": 1} # runner = "puliclient.contrib.commandlinerunner.CommandLineRunner" # graph.addNewTask(name="Timer", arguments=args, tags=tags, runner=runner, timer=time.time()+600) graph.addNewCallable( MyClass.myMethod, "une_methode", user_args=("toto", 2), user_kwargs={"param3": 3}, tags=tags, ramUse=4000 ) tg = graph.addNewTaskGroup("group") from mymodule.submodule.farm import myFunction tg.addNewCallable(myFunction, "une_fonction", user_args=[True,"any text"], tags=tags) # graph.addCallable(MyClass.myMethod, "1er_arg", 2, param3='test', name="zozo", tags=tags, timer=time.time()+600) except GraphError, e: print "oops an error occured during the graph creation: %s" % e sys.exit(0) if options.dump: print graph # # Execute