Example outputs:
$ python dynamic.py DynamicRequirements --a 4 --b 8
DEBUG: Checking if DynamicRequirements(a=4, b=8) is complete
INFO: Scheduled DynamicRequirements(a=4, b=8)
DEBUG: Checking if SomeTask(number=4) is complete
INFO: Scheduled SomeTask(number=4)
INFO: Done scheduling tasks
DEBUG: Asking scheduler for work...
DEBUG: Pending tasks: 2
INFO: [pid 21375] Running SomeTask(number=4)
INFO: [pid 21375] Done SomeTask(number=4)
DEBUG: Asking scheduler for work...
DEBUG: Pending tasks: 1
INFO: [pid 21375] Running DynamicRequirements(a=4, b=8)
4 x 8 = 32
INFO: [pid 21375] Done DynamicRequirements(a=4, b=8)
DEBUG: Asking scheduler for work...
INFO: Done
INFO: There are no more tasks to run at this time
INFO: Worker was stopped. Shutting down Keep-Alive thread
And the super dynamic task:
$ python dynamic.py SuperDynamicRequirements --a 4
DEBUG: Checking if SuperDynamicRequirements(a=4) is complete
DEBUG: Checking if RandomNumber() is complete
INFO: Done scheduling tasks
DEBUG: Asking scheduler for work...
INFO: Done
INFO: There are no more tasks to run at this time
INFO: Worker was stopped. Shutting down Keep-Alive thread
INFO: Scheduled SuperDynamicRequirements(a=4)
DEBUG: Checking if RandomNumber() is complete
INFO: Done scheduling tasks
DEBUG: Asking scheduler for work...
INFO: Done
INFO: There are no more tasks to run at this time
INFO: Worker was stopped. Shutting down Keep-Alive thread
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
DEBUG: Checking if SomeTask(number=4) is complete
INFO: Done scheduling tasks
DEBUG: Asking scheduler for work...
DEBUG: Pending tasks: 1
INFO: [pid 21439] Running SuperDynamicRequirements(a=4)
DEBUG: Checking if RandomNumber() is complete
INFO: Done scheduling tasks
DEBUG: Asking scheduler for work...
INFO: Done
INFO: There are no more tasks to run at this time
INFO: Worker was stopped. Shutting down Keep-Alive thread
DEBUG: Checking if RandomNumber() is complete
INFO: Done scheduling tasks
DEBUG: Asking scheduler for work...
INFO: Done
INFO: There are no more tasks to run at this time
INFO: Worker was stopped. Shutting down Keep-Alive thread
DEBUG: Checking if RandomNumber() is complete
INFO: Done scheduling tasks
DEBUG: Asking scheduler for work...
INFO: Done
INFO: There are no more tasks to run at this time
INFO: Worker was stopped. Shutting down Keep-Alive thread
4 x 10 = 40
INFO: [pid 21439] Done SuperDynamicRequirements(a=4)
DEBUG: Asking scheduler for work...
INFO: Done
INFO: There are no more tasks to run at this time
INFO: Worker was stopped. Shutting down Keep-Alive thread