async def METHOD_NAME(self) -> Schedulable | None:
    if not self.schedulable_list:
        return None
    cur_weight = await config.get_current_weight_val(self.platform_name_list)
    weight_sum = self.pre_weight_val
    self.pre_weight_val = 0
    cur_max_schedulable = None
    for schedulable in self.schedulable_list:
        schedulable.current_weight += cur_weight[f"{schedulable.platform_name}-{schedulable.target}"]
        weight_sum += cur_weight[f"{schedulable.platform_name}-{schedulable.target}"]
        if not cur_max_schedulable or cur_max_schedulable.current_weight < schedulable.current_weight:
            cur_max_schedulable = schedulable
    assert cur_max_schedulable
    cur_max_schedulable.current_weight -= weight_sum
    return cur_max_schedulable