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;

/**
 * B5
 *
 * @author lanyuanxiaoyao
 * @date 2023-06-08
 */
@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
@Component
public class B5Cluster extends Cluster {
    public B5Cluster(DiscoveryClient client, YarnService yarnService) {
        super(
                Constants.CLUSTER_B5,
                Constants.COMPACTION_QUEUE_B5,
                AvailableStrategy.and(
                        new QueueSizeLimit(client, Constants.COMPACTION_QUEUE_B5, 10),
                        new YarnQueueUsedLimit(yarnService, Constants.CLUSTER_B5, "ten_iap.datalake", 0.9)
                        /*AvailableStrategy.whether(
                                new DatetimeLimit("* * 0-1 * * ?"),
                                new YarnQueueUsedLimit(yarnService, Constants.CLUSTER_B5, "ten_iap.datalake", 0.9),
                                new YarnQueueUsedLimit(yarnService, Constants.CLUSTER_B5, "ten_iap.datalake", 0.5)

                        )*/
                )
        );
    }
}
