package com.lanyuanxiaoyao.service.scheduler.quartz.distribute.cluster;

import com.lanyuanxiaoyao.service.common.Constants;
import com.lanyuanxiaoyao.service.forest.service.YarnService;
import com.lanyuanxiaoyao.service.scheduler.quartz.distribute.strategy.AvailableStrategy;
import com.lanyuanxiaoyao.service.scheduler.quartz.distribute.strategy.QueueSizeLimit;
import com.lanyuanxiaoyao.service.scheduler.quartz.distribute.strategy.YarnQueueUsedLimit;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.stereotype.Component;

/**
 * B1
 *
 * @author lanyuanxiaoyao
 * @date 2023-06-08
 */
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
@Component
public class B1Cluster extends Cluster {
    public B1Cluster(DiscoveryClient client, YarnService yarnService) {
        super(
                Constants.CLUSTER_B1,
                Constants.COMPACTION_QUEUE_B1,
                AvailableStrategy.and(
                        new QueueSizeLimit(client, Constants.COMPACTION_QUEUE_B1, 20),
                        new YarnQueueUsedLimit(yarnService, Constants.CLUSTER_B1, "datalake", 1.0)
                )
        );
    }
}
