using System.Threading.Tasks.Schedulers;

namespace BBWYB.Server.Business
{
    public class TaskSchedulerManager
    {
        public LimitedConcurrencyLevelTaskScheduler SyncProductTaskScheduler { get; private set; }
        public LimitedConcurrencyLevelTaskScheduler SyncOrderTaskScheduler { get; private set; }

        public LimitedConcurrencyLevelTaskScheduler PurchaseOrderCallbackTaskScheduler { get; private set; }

        public LimitedConcurrencyLevelTaskScheduler AggregationPurchaserTaskScheduler { get; private set; }

        public LimitedConcurrencyLevelTaskScheduler OptimizationTaskScheduler { get; private set; }

        public TaskSchedulerManager()
        {
            SyncOrderTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
            PurchaseOrderCallbackTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
            SyncProductTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(10);
            AggregationPurchaserTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(1);
            OptimizationTaskScheduler = new LimitedConcurrencyLevelTaskScheduler(3);
        }
    }
}