using LMS.Repository.DB; namespace LMS.Tools.MJPackage { // Services/ITaskConcurrencyManager.cs public interface ITaskConcurrencyManager { Task CreateTaskAsync(string token, string thirdPartyTaskId); Task UpdateTaskInDatabase(MJApiTasks mJApiTasks); Task GetTaskInfoAsync(string taskId); Task GetTaskInfoByThirdPartyIdAsync(string taskId); Task> GetRunningTasksAsync(string token = null); Task<(int maxConcurrency, int running, int available)> GetConcurrencyStatusAsync(string token); Task CleanupTimeoutTasksAsync(TimeSpan timeout); } }