Changeset View
Changeset View
Standalone View
Standalone View
swh/scheduler/simulator/__init__.py
Show First 20 Lines • Show All 48 Lines • ▼ Show 20 Lines | while True: | ||||
env.time, | env.time, | ||||
name, | name, | ||||
task.visit_type, | task.visit_type, | ||||
task.origin, | task.origin, | ||||
) | ) | ||||
yield env.process(load_task_process(env, task, status_queue=status_queue)) | yield env.process(load_task_process(env, task, status_queue=status_queue)) | ||||
def heartbeat(env: Environment) -> Generator[Event, None, None]: | |||||
while True: | |||||
logger.info("Simulation time: %s", env.time) | |||||
yield env.timeout(3600 * 24) | |||||
def setup( | def setup( | ||||
env: Environment, | env: Environment, | ||||
scheduler_type: str, | scheduler_type: str, | ||||
policy: Optional[str], | policy: Optional[str], | ||||
workers_per_type: Dict[str, int], | workers_per_type: Dict[str, int], | ||||
task_queue_capacity: int, | task_queue_capacity: int, | ||||
min_batch_size: int, | min_batch_size: int, | ||||
metrics_update_interval: int, | metrics_update_interval: int, | ||||
Show All 33 Lines | for visit_type, num_workers in workers_per_type.items(): | ||||
task_queue = task_queues[visit_type] | task_queue = task_queues[visit_type] | ||||
for i in range(num_workers): | for i in range(num_workers): | ||||
worker_name = f"worker-{visit_type}-{i}" | worker_name = f"worker-{visit_type}-{i}" | ||||
env.process(worker_process(env, worker_name, task_queue, status_queue)) | env.process(worker_process(env, worker_name, task_queue, status_queue)) | ||||
lister = env.scheduler.get_or_create_lister(name="example") | lister = env.scheduler.get_or_create_lister(name="example") | ||||
assert lister.id | assert lister.id | ||||
env.process(lister_process(env, lister.id)) | env.process(lister_process(env, lister.id)) | ||||
env.process(heartbeat(env)) | |||||
def fill_test_data(scheduler: SchedulerInterface, num_origins: int = 100000): | def fill_test_data(scheduler: SchedulerInterface, num_origins: int = 100000): | ||||
"""Fills the database with mock data to test the simulator.""" | """Fills the database with mock data to test the simulator.""" | ||||
stored_lister = scheduler.get_or_create_lister(name="example") | stored_lister = scheduler.get_or_create_lister(name="example") | ||||
assert stored_lister.id is not None | assert stored_lister.id is not None | ||||
# Generate 'num_origins' new origins | # Generate 'num_origins' new origins | ||||
▲ Show 20 Lines • Show All 46 Lines • Show Last 20 Lines |