Skip to content

Commit

Permalink
added arguments and bottleneck feature to cli.
Browse files Browse the repository at this point in the history
  • Loading branch information
nickdelgrosso committed Dec 29, 2018
1 parent ad78698 commit 70ed1e3
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
16 changes: 9 additions & 7 deletions leansim/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,18 @@

def main():
parser = argparse.ArgumentParser()
parser.add_argument('--workers', '-w', default=4, help='Number of workers in value stream.')
parser.add_argument('--work', default=20, help='Number of products to make.')
parser.add_argument('--duration', default=2, help='Number of time steps each process takes.')
parser.add_argument('--batch', default=20, help='Batch size for each worker.')
parser.add_argument('--sleep', default=0.2, help='Time to sleep between steps.')
# parser.add_argument('--bottleneck', default=False)
parser.add_argument('--workers', '-w', default=4, type=int, help='Number of workers in value stream.')
parser.add_argument('--work', default=100, type=int, help='Number of products to make.')
parser.add_argument('--duration', default=2, type=int, help='Number of time steps each process takes.')
parser.add_argument('--batch', default=20, type=int, help='Batch size for each worker.')
parser.add_argument('--sleep', default=0.05, type=float, help='Time to sleep between steps.')
parser.add_argument('--bottleneck', default=0, type=int, help='Position of bottleneck. If 0, no bottleneck exists.')
parser.add_argument('--max_todo', default=None, type=int, help='Maximum worker todo list size. Used for demonstrating pull/kanban system')


args = parser.parse_args()
Workflow.run_chained_process(workers=args.workers, work=args.work, task_duration=args.duration, batch_size=args.batch,
verbose=True, sleep_time=args.sleep)
verbose=True, sleep_time=args.sleep, max_todo=args.max_todo, bottleneck_worker=args.bottleneck)



Expand Down
6 changes: 4 additions & 2 deletions leansim/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,17 +53,19 @@ def __repr__(self):

rep += '-----------------------------------------------------------\n'

for attr in ['total_work', 'wip', 'work_done']:
for attr in ['total_work', 'wip']:
rep += '{}: {} '.format(attr, getattr(self, attr))

return rep

@classmethod
def run_chained_process(cls, work=20, workers=4, verbose=False, sleep_time=0.2, **worker_kwargs):
def run_chained_process(cls, work=20, workers=4, verbose=False, sleep_time=0.2, bottleneck_worker=None, **worker_kwargs):
queue = [Worker(**worker_kwargs) for _ in range(workers)]
for w1, w2 in zip(queue[:-1], queue[1:]):
w1.target = w2

workflow = cls(workers=queue)
if bottleneck_worker:
workflow.workers[bottleneck_worker - 1].task_duration = workflow.workers[0].task_duration * 4
steps = workflow.process(work=work, verbose=verbose, sleep_time=sleep_time)
return steps

0 comments on commit 70ed1e3

Please sign in to comment.