1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
from pyutilib.workflow import Resource, Task, Workflow
class BusyResource(Resource):
def __init__(self, name=None):
Resource.__init__(self)
self._counter = 1
def available(self):
if self._counter > 0:
print("BUSY %d" % self._counter)
self._counter -= 1
return False
return True
class TaskA(Task):
def __init__(self, *args, **kwds):
Task.__init__(self, *args, **kwds)
self.inputs.declare('x')
self.outputs.declare('x', self.inputs.x)
def execute(self):
pass
A = TaskA()
A.add_resource(BusyResource())
w = Workflow()
w.add(A)
print(w(x=1))
|