TJC.Cyclops.TaskSystem 2025.12.2.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package TJC.Cyclops.TaskSystem --version 2025.12.2.1
                    
NuGet\Install-Package TJC.Cyclops.TaskSystem -Version 2025.12.2.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="TJC.Cyclops.TaskSystem" Version="2025.12.2.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="TJC.Cyclops.TaskSystem" Version="2025.12.2.1" />
                    
Directory.Packages.props
<PackageReference Include="TJC.Cyclops.TaskSystem" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add TJC.Cyclops.TaskSystem --version 2025.12.2.1
                    
#r "nuget: TJC.Cyclops.TaskSystem, 2025.12.2.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package TJC.Cyclops.TaskSystem@2025.12.2.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=TJC.Cyclops.TaskSystem&version=2025.12.2.1
                    
Install as a Cake Addin
#tool nuget:?package=TJC.Cyclops.TaskSystem&version=2025.12.2.1
                    
Install as a Cake Tool

Cyclops.TaskSystem

项目概述

Cyclops.TaskSystem是Cyclops.Framework框架中的任务系统组件,提供任务调度、执行、监控和管理功能。该组件支持定时任务、延时任务、分布式任务等多种任务类型,并提供任务状态跟踪、失败重试、任务依赖管理等高级特性,适用于后台任务处理、定时作业执行、批量处理等应用场景。

核心功能模块

任务调度器

  • 基于Quartz.NET的任务调度
  • Cron表达式支持
  • 任务优先级管理
  • 并发控制

任务执行器

  • 同步/异步任务执行
  • 任务超时控制
  • 资源限制管理
  • 执行结果处理

任务管理

  • 任务创建与配置
  • 任务状态跟踪
  • 任务暂停/恢复/取消
  • 任务参数管理

失败处理

  • 自动重试机制
  • 失败通知
  • 死信队列
  • 异常捕获与记录

分布式支持

  • 分布式锁
  • 任务分片执行
  • 节点健康检查
  • 负载均衡

高级功能

  • 任务依赖链
  • 工作流集成
  • 任务版本控制
  • 性能监控与统计

技术栈

  • .NET 8.0
  • Quartz.NET(任务调度)
  • Polly(重试策略)
  • Cyclops.Common
  • Cyclops.DI
  • Cyclops.Logging

环境依赖

  • .NET 8.0 SDK
  • 可选:数据库(用于持久化任务状态)

安装配置

NuGet安装

Install-Package Cyclops.TaskSystem

基本配置

在应用程序启动时进行配置:

// 在Program.cs或Startup.cs中
using Cyclops.TaskSystem;

var builder = WebApplication.CreateBuilder(args);

// 添加Cyclops.TaskSystem服务
builder.Services.AddCyclopsTaskSystem(options => {
    // 调度器配置
    options.SchedulerOptions = new SchedulerOptions {
        ThreadPoolSize = 10,
        EnableBatchProcessing = true,
        BatchSize = 50
    }

## 版本信息
- 当前版本[![NuGet version (Cyclops.Framework)](https://img.shields.io/nuget/v/Cyclops.Framework.svg?style=flat-square)](https://www.nuget.org/packages?q=TJC.Cyclops)
- 作者:yswenli
- 描述:企服版框架中任务系统组件

## 贡献者

- yswenli

## 许可证

保留所有权利;
    
    // 持久化配置
    options.StorageOptions = new TaskStorageOptions {
        StorageType = TaskStorageType.InMemory, // 可选:InMemory, SqlServer, MySql等
        ConnectionString = builder.Configuration["TaskSystem:StorageConnectionString"]
    };
    
    // 分布式配置(可选)
    options.DistributedOptions = new DistributedTaskOptions {
        Enabled = false,
        LockExpiration = TimeSpan.FromMinutes(5),
        NodeId = Environment.MachineName
    };
    
    // 重试配置
    options.RetryOptions = new RetryOptions {
        MaxRetries = 3,
        RetryDelay = TimeSpan.FromSeconds(10),
        RetryBackoffMultiplier = 2
    };
    
    // 启用日志
    options.EnableLogging = true;
});

// ...

代码示例

基本任务定义与调度示例

using Cyclops.TaskSystem.Attributes;
using Cyclops.TaskSystem.Services;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;

// 定义任务类
[TaskName("SampleTask")]
[Description("示例任务")]
public class SampleTask : ITask
{
    private readonly ILogger<SampleTask> _logger;
    
    public SampleTask(ILogger<SampleTask> logger)
    {
        _logger = logger;
    }
    
    public async Task<TaskResult> ExecuteAsync(TaskContext context)
    {
        try
        {
            _logger.LogInformation("任务开始执行,参数: {Parameters}", context.Parameters);
            
            // 模拟任务执行
            await Task.Delay(1000);
            
            // 获取任务参数
            var message = context.Parameters?.GetValueOrDefault("message", "无消息")?.ToString();
            
            _logger.LogInformation("任务执行成功: {Message}", message);
            
            // 返回成功结果
            return TaskResult.Success(new Dictionary<string, object> {
                { "executedAt", DateTime.Now },
                { "result", "任务执行完成" }
             });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "任务执行失败");
            return TaskResult.Failure(ex.Message);
        }
    }
}

## 版本信息
- 当前版本[![NuGet version (Cyclops.Framework)](https://img.shields.io/nuget/v/Cyclops.Framework.svg?style=flat-square)](https://www.nuget.org/packages?q=TJC.Cyclops)
- 作者:yswenli
- 描述:企服版框架中任务系统组件

## 贡献者

- yswenli

## 许可证

保留所有权利

// 在服务中调度任务
public class TaskSchedulerService
{
    private readonly ITaskScheduler _taskScheduler;
    
    public TaskSchedulerService(ITaskScheduler taskScheduler)
    {
        _taskScheduler = taskScheduler;
    }
    
    public async Task ScheduleSampleTaskAsync()
    {
        // 立即执行任务
        var immediateTaskId = await _taskScheduler.ScheduleTaskAsync<SampleTask>(new Dictionary<string, object> {
            { "message", "立即执行的任务" }
        });
        
        Console.WriteLine($"立即执行任务ID: {immediateTaskId}");
        
        // 延时执行任务(10秒后)
        var delayedTaskId = await _taskScheduler.ScheduleDelayedTaskAsync<SampleTask>(
            delay: TimeSpan.FromSeconds(10),
            parameters: new Dictionary<string, object> {
                { "message", "延时执行的任务" }
            }
        );
        
        Console.WriteLine($"延时任务ID: {delayedTaskId}");
        
        // 定时执行任务(使用Cron表达式,每分钟执行一次)
        var scheduledTaskId = await _taskScheduler.ScheduleRecurringTaskAsync<SampleTask>(
            cronExpression: "0 * * * * ?", // 每分钟执行
            jobKey: "SampleTask_Recurring",
            parameters: new Dictionary<string, object> {
                { "message", "定时重复执行的任务" }
            }
        );
        
        Console.WriteLine($"定时任务ID: {scheduledTaskId}");
    }
}

任务管理示例

using Cyclops.TaskSystem.Enums;
using Cyclops.TaskSystem.Services;
using Microsoft.Extensions.DependencyInjection;

// 在服务中管理任务
public class TaskManagementService
{
    private readonly ITaskManager _taskManager;
    
    public TaskManagementService(ITaskManager taskManager)
    {
        _taskManager = taskManager;
    }
    
    public async Task ManageTasksAsync()
    {
        // 获取任务状态
        var taskId = "your-task-id";
        var taskStatus = await _taskManager.GetTaskStatusAsync(taskId);
        
        Console.WriteLine($"任务状态: {taskStatus.Status}");
        Console.WriteLine($"创建时间: {taskStatus.CreatedAt}");
        Console.WriteLine($"开始时间: {taskStatus.StartedAt}");
        Console.WriteLine($"完成时间: {taskStatus.CompletedAt}");
        Console.WriteLine($"执行次数: {taskStatus.ExecutionCount}");
        
        // 暂停任务(仅对定时任务有效)
        await _taskManager.PauseTaskAsync("recurring-task-key");
        Console.WriteLine("任务已暂停");
        
        // 恢复任务
        await _taskManager.ResumeTaskAsync("recurring-task-key");
        Console.WriteLine("任务已恢复");
        
        // 取消任务
        await _taskManager.CancelTaskAsync(taskId);
        Console.WriteLine("任务已取消");
        
        // 删除任务(从调度器中移除)
        await _taskManager.DeleteTaskAsync("recurring-task-key");
        Console.WriteLine("任务已删除");
        
        // 查询任务列表
        var tasks = await _taskManager.GetTasksAsync(new TaskQuery {
            Status = TaskStatus.Completed,
            CreatedAfter = DateTime.Now.AddDays(-7),
            PageSize = 20,
            PageIndex = 1
        });
        
        Console.WriteLine($"查询到 {tasks.TotalCount} 个任务");
        foreach (var task in tasks.Items)
        {
            Console.WriteLine($"- 任务ID: {task.Id}, 状态: {task.Status}, 类型: {task.TaskType}");
        }
    }
}

分布式任务示例

using Cyclops.TaskSystem.Attributes;
using Cyclops.TaskSystem.Services;
using Microsoft.Extensions.DependencyInjection;

// 定义可分片的分布式任务
[TaskName("DistributedDataProcessTask")]
public class DistributedDataProcessTask : IDistributedTask
{
    private readonly IDataService _dataService;
    private readonly ILogger<DistributedDataProcessTask> _logger;
    
    public DistributedDataProcessTask(IDataService dataService, ILogger<DistributedDataProcessTask> logger)
    {
        _dataService = dataService;
        _logger = logger;
    }
    
    // 获取任务分片信息
    public async Task<IEnumerable<TaskShard>> GetTaskShardsAsync(TaskContext context)
    {
        // 获取总数据量
        var totalCount = await _dataService.GetTotalRecordCountAsync();
        var shardSize = 1000; // 每个分片处理1000条记录
        var shardCount = (int)Math.Ceiling((double)totalCount / shardSize);
        
        var shards = new List<TaskShard>();
        
        for (int i = 0; i < shardCount; i++)
        {
            shards.Add(new TaskShard {
                ShardId = i.ToString(),
                Parameters = new Dictionary<string, object> {
                    { "offset", i * shardSize },
                    { "limit", shardSize }
                }
            });
        }
        
        return shards;
    }
    
    // 执行单个分片
    public async Task<TaskResult> ExecuteShardAsync(TaskContext context, TaskShard shard)
    {
        try
        {   
            var offset = (int)shard.Parameters["offset"];
            var limit = (int)shard.Parameters["limit"];
            
            _logger.LogInformation("开始处理分片: {ShardId}, 偏移量: {Offset}, 数量: {Limit}", 
                shard.ShardId, offset, limit);
            
            // 处理数据
            var processedCount = await _dataService.ProcessDataBatchAsync(offset, limit);
            
            _logger.LogInformation("分片处理完成: {ShardId}, 处理记录数: {Count}", 
                shard.ShardId, processedCount);
            
            return TaskResult.Success(new Dictionary<string, object> {
                { "processedCount", processedCount },
                { "shardId", shard.ShardId }
            });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "分片处理失败: {ShardId}", shard.ShardId);
            return TaskResult.Failure(ex.Message);
        }
    }
}

// 调度分布式任务
public class DistributedTaskService
{
    private readonly IDistributedTaskScheduler _distributedTaskScheduler;
    
    public DistributedTaskService(IDistributedTaskScheduler distributedTaskScheduler)
    {
        _distributedTaskScheduler = distributedTaskScheduler;
    }
    
    public async Task ScheduleDistributedTaskAsync()
    {
        // 配置分布式任务选项
        var options = new DistributedTaskOptions {
            MaxConcurrency = 5, // 最大并发分片数
            EnableShardRetry = true,
            ShardRetryCount = 3,
            ProgressCallback = async (progress) => {
                Console.WriteLine($"任务进度: {progress.CompletedShards}/{progress.TotalShards} ({progress.CompletionPercentage:P2})");
            }
        };
        
        // 执行分布式任务
        var taskId = await _distributedTaskScheduler.ExecuteDistributedTaskAsync<DistributedDataProcessTask>(
            options: options,
            parameters: new Dictionary<string, object> {
                { "processDate", DateTime.Today }
            }
        );
        
        Console.WriteLine($"分布式任务ID: {taskId}");
        
        // 监控任务进度
        var taskProgress = await _distributedTaskScheduler.GetTaskProgressAsync(taskId);
        
        Console.WriteLine($"任务进度详情:");
        Console.WriteLine($"- 总分片数: {taskProgress.TotalShards}");
        Console.WriteLine($"- 已完成分片: {taskProgress.CompletedShards}");
        Console.WriteLine($"- 失败分片: {taskProgress.FailedShards}");
        Console.WriteLine($"- 完成百分比: {taskProgress.CompletionPercentage:P2}");
        Console.WriteLine($"- 开始时间: {taskProgress.StartedAt}");
        Console.WriteLine($"- 预计完成时间: {taskProgress.EstimatedCompletionTime}");
    }
}

任务依赖示例

using Cyclops.TaskSystem.Attributes;
using Cyclops.TaskSystem.Services;
using Microsoft.Extensions.DependencyInjection;

// 定义多个相关任务
[TaskName("DataExtractionTask")]
public class DataExtractionTask : ITask
{
    public async Task<TaskResult> ExecuteAsync(TaskContext context)
    {
        Console.WriteLine("执行数据提取任务");
        // 模拟数据提取
        await Task.Delay(2000);
        
        return TaskResult.Success(new Dictionary<string, object> {
            { "extractedDataCount", 1000 },
            { "extractionTime", DateTime.Now }
        });
    }
}

[TaskName("DataTransformationTask")]
public class DataTransformationTask : ITask
{
    public async Task<TaskResult> ExecuteAsync(TaskContext context)
    {
        Console.WriteLine("执行数据转换任务");
        
        // 获取前置任务结果
        var extractedCount = context.PreviousTaskResult?["extractedDataCount"] as int? ?? 0;
        
        // 模拟数据转换
        await Task.Delay(3000);
        
        return TaskResult.Success(new Dictionary<string, object> {
            { "transformedDataCount", extractedCount },
            { "transformationTime", DateTime.Now }
        });
    }
}

[TaskName("DataLoadingTask")]
public class DataLoadingTask : ITask
{
    public async Task<TaskResult> ExecuteAsync(TaskContext context)
    {
        Console.WriteLine("执行数据加载任务");
        
        // 获取前置任务结果
        var transformedCount = context.PreviousTaskResult?["transformedDataCount"] as int? ?? 0;
        
        // 模拟数据加载
        await Task.Delay(2000);
        
        return TaskResult.Success(new Dictionary<string, object> {
            { "loadedDataCount", transformedCount },
            { "loadingTime", DateTime.Now }
        });
    }
}

// 调度任务依赖链
public class TaskChainService
{
    private readonly ITaskChainBuilder _taskChainBuilder;
    
    public TaskChainService(ITaskChainBuilder taskChainBuilder)
    {
        _taskChainBuilder = taskChainBuilder;
    }
    
    public async Task BuildAndExecuteTaskChainAsync()
    {
        // 构建任务链
        var taskChain = _taskChainBuilder
            .AddTask<DataExtractionTask>()
            .AddTask<DataTransformationTask>()
            .AddTask<DataLoadingTask>()
            .Build();
        
        // 配置任务链选项
        var options = new TaskChainOptions {
            ContinueOnFailure = false, // 一个任务失败则整个链中断
            EnableProgressTracking = true,
            ProgressCallback = (progress) => {
                Console.WriteLine($"任务链进度: {progress.CurrentTaskIndex + 1}/{progress.TotalTasks}, " +
                                $"当前任务: {progress.CurrentTaskName}, " +
                                $"状态: {progress.CurrentTaskStatus}");
            }
        };
        
        // 执行任务链
        var chainResult = await taskChain.ExecuteAsync(options);
        
        Console.WriteLine($"任务链执行状态: {chainResult.Status}");
        
        if (chainResult.Status == TaskChainStatus.Completed)
        {
            Console.WriteLine("任务链执行成功!");
            
            // 输出每个任务的结果
            foreach (var taskResult in chainResult.TaskResults)
            {
                Console.WriteLine($"- 任务: {taskResult.TaskName}, " +
                                $"状态: {taskResult.Status}, " +
                                $"执行时间: {taskResult.ExecutionTime.TotalMilliseconds}ms");
            }
        }
        else
        {
            Console.WriteLine($"任务链执行失败: {chainResult.FailureReason}");
            Console.WriteLine($"失败任务: {chainResult.FailedTaskName}");
        }
    }
}
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2025.12.3.3 15 12/3/2025
2025.12.3.2 18 12/3/2025
2025.12.3.1 29 12/3/2025
2025.12.2.1 38 12/2/2025
2025.11.28.1 97 11/28/2025
2025.11.25.1 177 11/25/2025
2025.11.21.1 382 11/21/2025
2025.11.20.1 382 11/20/2025
2025.11.19.2 381 11/19/2025
2025.11.19.1 382 11/19/2025
2025.11.18.2 385 11/18/2025
2025.11.18.1 396 11/18/2025
2025.11.17.1 297 11/17/2025
2025.11.14.1 238 11/14/2025
2025.11.13.1 262 11/13/2025
2025.11.12.2 260 11/12/2025
2025.11.12.1 277 11/12/2025
2025.11.10.2 215 11/10/2025
2025.11.10.1 215 11/10/2025
2025.11.7.2 158 11/7/2025
2025.11.7.1 169 11/7/2025
2025.11.6.1 184 11/6/2025
2025.11.5.1 183 11/5/2025
2025.11.4.2 181 11/4/2025
2025.11.4.1 177 11/4/2025
2025.11.3.1 193 11/3/2025
2025.10.28.1 175 10/28/2025
2025.10.27.1 180 10/27/2025
2025.10.24.1 178 10/24/2025
2025.10.22.2 179 10/22/2025
2025.10.22.1 159 10/22/2025
2025.10.14.1 164 10/14/2025
2025.10.13.5 160 10/13/2025
2025.10.13.4 171 10/13/2025
2025.10.13.3 186 10/13/2025
2025.10.13.2 162 10/13/2025
2025.10.13.1 162 10/13/2025
2025.10.11.1 109 10/11/2025
2025.10.10.1 159 10/10/2025
2025.9.26.2 169 9/26/2025
2025.9.26.1 168 9/26/2025
2025.9.25.1 184 9/25/2025
2025.9.23.1 164 9/23/2025
2025.9.19.1 289 9/19/2025
2025.9.16.1 301 9/16/2025
2025.9.15.2 236 9/15/2025
2025.9.15.1 247 9/15/2025
2025.9.10.2 157 9/10/2025
2025.9.10.1 158 9/10/2025
2025.9.9.1 158 9/9/2025
2025.9.1.1 176 9/1/2025
2025.8.29.1 195 8/29/2025
2025.8.22.1 126 8/22/2025
2025.8.21.2 150 8/21/2025
2025.8.21.1 158 8/21/2025
2025.8.20.1 164 8/20/2025
2025.8.14.1 165 8/14/2025
2025.8.13.1 161 8/13/2025
2025.8.12.1 174 8/12/2025
2025.8.11.3 155 8/11/2025
2025.8.11.2 143 8/11/2025
2025.8.11.1 160 8/11/2025
2025.8.8.2 200 8/8/2025
2025.8.8.1 208 8/8/2025
2025.8.7.1 245 8/7/2025
2025.8.6.2 227 8/6/2025
2025.8.6.1 239 8/6/2025
2025.8.4.1 179 8/4/2025
2025.8.1.1 117 8/1/2025
2025.7.31.1 139 7/31/2025
2025.7.30.2 128 7/30/2025
2025.7.30.1 128 7/30/2025
2025.7.25.3 443 7/25/2025
2025.7.25.2 448 7/25/2025
2025.7.25.1 473 7/25/2025
2025.7.22.2 546 7/22/2025
2025.7.22.1 554 7/22/2025
2025.7.21.2 436 7/21/2025
2025.7.21.1 349 7/21/2025
2025.7.17.1 167 7/17/2025
2025.7.8.1 156 7/8/2025
2025.7.7.3 159 7/7/2025
2025.7.7.2 172 7/7/2025
2025.7.7.1 151 7/7/2025
2025.7.5.1 109 7/4/2025
2025.7.4.3 109 7/4/2025
2025.7.4.2 120 7/4/2025
2025.7.4.1 124 7/4/2025
2025.7.2.3 175 7/2/2025
2025.7.2.2 167 7/2/2025
2025.7.2.1 154 7/2/2025
2025.7.1.2 178 7/1/2025
2025.7.1.1 168 7/1/2025
2025.6.25.2 166 6/25/2025
2025.6.25.1 166 6/25/2025
2025.6.24.4 167 6/24/2025
2025.6.24.3 179 6/24/2025
2025.6.24.2 160 6/24/2025
2025.6.24.1 169 6/24/2025
2025.6.23.2 184 6/23/2025
2025.6.23.1 179 6/23/2025
2025.6.20.1 137 6/20/2025
2025.6.19.1 178 6/19/2025
2025.6.18.1 168 6/18/2025
2025.6.13.1 291 6/13/2025
2025.6.11.1 327 6/11/2025
2025.5.26.1 185 5/26/2025
2025.5.18.1 183 5/18/2025
2025.5.8.1 184 5/8/2025
2025.5.7.4 160 5/7/2025
2025.5.7.3 188 5/7/2025
2025.5.7.2 183 5/7/2025
2025.5.7.1 181 5/7/2025
2025.4.28.1 194 4/28/2025
2025.4.22.2 197 4/22/2025
2025.4.22.1 219 4/22/2025
2025.4.18.1 212 4/18/2025
2025.4.16.1 240 4/16/2025
2025.4.15.1 236 4/15/2025
2025.4.11.2 177 4/11/2025
2025.4.11.1 195 4/11/2025
2025.4.8.1 197 4/8/2025
2025.4.7.2 202 4/7/2025
2025.4.7.1 216 4/7/2025
2025.4.3.2 212 4/3/2025
2025.4.3.1 204 4/3/2025
2025.4.2.1 214 4/2/2025
2025.4.1.1 197 4/1/2025
2025.3.31.4 199 3/31/2025
2025.3.31.3 191 3/31/2025
2025.3.31.2 204 3/31/2025
2025.3.31.1 202 3/31/2025
2025.3.26.2 494 3/26/2025
2025.3.26.1 505 3/26/2025
2025.3.25.1 513 3/25/2025
2025.3.24.1 374 3/24/2025
2025.3.18.2 184 3/18/2025
2025.3.18.1 186 3/18/2025
2025.3.13.1 198 3/13/2025
2025.3.12.1 216 3/12/2025
2025.3.11.1 228 3/11/2025
2025.3.10.1 222 3/10/2025
2025.3.6.2 252 3/6/2025
2025.3.5.1 260 3/5/2025
2025.3.3.1 167 3/3/2025
2025.2.28.1 148 2/28/2025
2025.2.25.1 146 2/25/2025
2025.2.23.1 146 2/24/2025
2025.2.14.1 157 2/14/2025
2025.2.7.2 139 2/7/2025
2025.2.7.1 128 2/7/2025
2025.2.6.1 158 2/6/2025
2025.1.22.1 159 1/22/2025
2025.1.21.1 158 1/21/2025
2025.1.20.1 140 1/20/2025
2025.1.16.1 142 1/16/2025
2025.1.9.1 134 1/9/2025
2025.1.8.3 130 1/8/2025
2025.1.8.2 130 1/8/2025
2025.1.8.1 149 1/8/2025
2025.1.7.1 143 1/7/2025
2025.1.3.1 173 1/3/2025
2025.1.2.1 153 1/2/2025
2024.12.31.2 127 12/31/2024
2024.12.31.1 150 12/31/2024
2024.12.30.3 140 12/30/2024
2024.12.30.2 146 12/30/2024
2024.12.30.1 148 12/30/2024
2024.12.27.1 134 12/27/2024
2024.12.26.1 150 12/26/2024
2024.12.25.2 145 12/25/2024
2024.12.25.1 146 12/25/2024
2024.12.24.1 150 12/24/2024
2024.12.19.2 148 12/19/2024
2024.12.19.1 145 12/19/2024
2024.12.18.1 157 12/18/2024
2024.12.17.2 154 12/17/2024
2024.12.17.1 153 12/17/2024
2024.12.16.1 171 12/16/2024
2024.12.12.1 145 12/13/2024
2024.12.11.2 141 12/11/2024
2024.12.10.3 155 12/10/2024
2024.12.10.2 139 12/10/2024
2024.12.10.1 157 12/10/2024
2024.12.9.1 156 12/9/2024
2024.12.6.1 165 12/6/2024
2024.12.5.1 150 12/5/2024
2024.12.4.1 150 12/4/2024
2024.12.3.2 154 12/3/2024
2024.12.3.1 155 12/3/2024
2024.12.2.2 151 12/2/2024
2024.12.2.1 156 12/2/2024
2024.11.29.2 160 11/29/2024
2024.11.29.1 149 11/29/2024
2024.11.28.1 149 11/28/2024
2024.11.27.4 152 11/27/2024
2024.11.27.3 150 11/27/2024
2024.11.27.2 153 11/27/2024
2024.11.27.1 133 11/27/2024
2024.11.26.3 166 11/26/2024
2024.11.26.2 153 11/26/2024
2024.11.26.1 161 11/26/2024
2024.11.25.5 146 11/25/2024
2024.11.25.4 150 11/25/2024
2024.11.25.3 137 11/25/2024
2024.11.25.2 157 11/25/2024
2024.11.25.1 138 11/25/2024
2024.11.23.2 140 11/23/2024
2024.11.23.1 158 11/23/2024
2024.11.22.1 148 11/22/2024
2024.11.21.1 154 11/21/2024
2024.11.20.3 156 11/20/2024
2024.11.20.2 158 11/20/2024
2024.11.20.1 143 11/20/2024
2024.11.19.1 152 11/19/2024
2024.11.18.4 146 11/18/2024
2024.11.18.3 145 11/18/2024
2024.11.18.2 156 11/18/2024
2024.11.18.1 155 11/18/2024
2024.11.14.2 157 11/14/2024
2024.11.14.1 151 11/14/2024
2024.11.13.2 145 11/13/2024
2024.11.13.1 164 11/13/2024
2024.11.12.2 165 11/12/2024
2024.11.12.1 168 11/12/2024
2024.11.11.1 174 11/11/2024
2024.11.8.1 153 11/8/2024
2024.11.6.1 152 11/6/2024
2024.11.5.1 139 11/5/2024
2024.10.29.2 162 10/29/2024
2024.10.29.1 160 10/29/2024
2024.10.28.1 141 10/28/2024
2024.10.25.1 149 10/25/2024
2024.10.24.1 143 10/24/2024
2024.10.21.1 154 10/21/2024
2024.10.18.2 177 10/18/2024
2024.10.18.1 189 10/18/2024
2024.10.16.1 143 10/16/2024
2024.10.12.1 152 10/12/2024
2024.10.11.1 151 10/11/2024
2024.10.10.1 158 10/10/2024
2024.10.9.1 163 10/9/2024
2024.10.8.1 152 10/8/2024
2024.9.26.1 175 9/26/2024
2024.9.25.1 158 9/25/2024
2024.9.23.4 169 9/23/2024
2024.9.23.3 158 9/23/2024
2024.9.23.2 161 9/23/2024
2024.9.23.1 160 9/23/2024
2024.9.19.1 154 9/19/2024
2024.9.14.1 162 9/14/2024
2024.9.10.3 172 9/10/2024
2024.9.10.2 172 9/10/2024
2024.9.10.1 164 9/10/2024
2024.9.5.1 173 9/5/2024
2024.8.22.1 187 8/22/2024
2024.8.19.1 176 8/19/2024
2024.8.15.1 191 8/15/2024
2024.8.14.1 186 8/14/2024
2024.8.13.2 177 8/13/2024
2024.8.13.1 186 8/13/2024
2024.8.12.2 165 8/12/2024
2024.8.12.1 165 8/12/2024
2024.8.9.2 187 8/9/2024
2024.8.9.1 185 8/9/2024
2024.8.7.1 167 8/7/2024
2024.8.6.2 160 8/6/2024
2024.8.6.1 172 8/6/2024
2024.8.5.5 143 8/5/2024
2024.8.5.4 149 8/5/2024
2024.8.5.3 150 8/5/2024
2024.8.5.2 148 8/5/2024
2024.8.5.1 161 8/5/2024
2024.8.2.4 148 8/2/2024
2024.8.2.3 154 8/2/2024
2024.8.2.2 148 8/2/2024
2024.8.2.1 150 8/2/2024
2024.8.1.1 164 8/1/2024
2024.7.31.2 145 7/31/2024
2024.7.31.1 118 7/31/2024
2024.7.25.1 148 7/25/2024
2024.7.17.1 154 7/17/2024
2024.7.12.2 147 7/12/2024
2024.7.12.1 156 7/12/2024
2024.7.11.2 157 7/11/2024
2024.7.11.1 167 7/11/2024
2024.7.10.4 166 7/10/2024
2024.7.10.3 159 7/10/2024
2024.7.10.2 146 7/10/2024
2024.7.10.1 172 7/10/2024
2024.5.29.1 185 5/29/2024
2024.5.28.1 180 5/28/2024
2024.5.15.1 185 5/15/2024
2024.5.13.1 189 5/13/2024
2024.5.11.1 181 5/11/2024
2024.3.15.1 194 3/15/2024
2024.1.9.1 207 1/9/2024
2024.1.4.1 194 1/4/2024
2024.1.2.3 210 1/2/2024
2024.1.2.2 204 1/2/2024
2024.1.2.1 207 1/2/2024
2023.12.29.3 194 12/29/2023
2023.12.29.2 175 12/29/2023
2023.12.29.1 175 12/29/2023
2023.12.28.4 195 12/28/2023
2023.12.28.3 195 12/28/2023
2023.12.28.2 181 12/28/2023
2023.12.28.1 199 12/28/2023
2023.12.27.2 199 12/27/2023
2023.12.27.1 187 12/27/2023
2023.12.26.1 199 12/26/2023
2023.12.25.1 192 12/25/2023
2023.12.22.4 189 12/22/2023
2023.12.22.3 187 12/22/2023
2023.12.22.2 186 12/22/2023
2023.12.22.1 179 12/22/2023
2023.12.21.2 183 12/21/2023
2023.12.21.1 185 12/21/2023
2023.12.20.2 157 12/20/2023
2023.12.20.1 191 12/20/2023

企服版任务核心