6K Star 11.8K Fork 4K

GVPdotNET China / Furion

 / 详情

定时任务动态添加触发器显示成功,但未添加,删除触发器出异常

已完成
创建于  
2022-12-09 09:47

💢 特别说明:如果 Issue 没有严格按照模板编写且未提供测试源码下载或 Git 测试仓库地址,则视为无效 Issue,将无法得到答复。

Furion 版本号

4.8.3


.NET SDK 版本号

  • .NET5
  • .NET6
  • .NET7

项目类型

  • WebApi
  • Mvc
  • Razor Pages
  • Blazor Server
  • MinApp
  • WinForm
  • WPF
  • Console

操作系统和版本

  • Windows(版本)
  • Linux(版本)
  • MacOS(版本)
  • 其他(版本)

代码环境

  • 开发环境(Development)
  • 生产环境(Production)
  • 测试环境(Tests/单元测试/集成测试 )

描述你的问题

任务默认定义了一个触发器,通过接口动态添加触发器后仍然只有一条触发器。


异常堆栈信息

异常堆栈是什么?


测试项目代码

https://gitee.com/YaChengMu/fruion-debug/tree/%E8%A7%A6%E5%8F%91%E5%99%A8%E6%B7%BB%E5%8A%A0demo


数据库信息

  • Sqlite
  • SqlServer
  • MySQL
  • Oracle
  • PostgreSQL
  • Firebird
  • Cosmos
  • InMemoryDatabase

期待结果


评论 (7)

YaChengMu 创建了任务

已修正,确认是框架问题,下个版本发布(今天):b4f1e75

输入图片说明

百小僧 任务状态待办的 修改为已完成

Furion v4.8.3.2 版本发布,已修复。

当前 Issue 出现了新的问题:

输入图片说明

输入图片说明

IScheduler 自动同步修改功能已实现:输入图片说明

Furion v4.8.3.3 版本发布已修正。

自动刷新 IScheduler 例子

// 只需要获取一次即可
_ = _schedulerFactory.TryGetJob(trigger.JobId, out var _scheduler);

之后对于 _scheduler 任何操作将自动同步到该变量。

测试代码

public string GetDescription()
{
    var trigger = new
    {
        JobId = "job_log",
        TriggerType = "Furion.Schedule.PeriodTrigger",
        AssemblyName = "Furion.Pure",
        Args = "[5000]",
        Description = "11",
        NumberOfRuns = 10,
        MaxNumberOfRuns = 0,
        NumberOfErrors = 2,
        NumRetries = 1,
        RetryTimeout = 1000,
        StartNow = true,
        RunOnStart = true,
        TriggerId = "test_1",
    };

    var triggerBuilder = TriggerBuilder.Create(trigger.TriggerId).LoadFrom(trigger).Appended();

    // 只需要获取一次即可
    _ = _schedulerFactory.TryGetJob(trigger.JobId, out var _scheduler);

    Console.WriteLine($"触发器个数{_scheduler.GetTriggers().Count()}");
    _scheduler?.TryAddTrigger(triggerBuilder, out _);
    Console.WriteLine($"触发器个数{_scheduler.GetTriggers().Count()}");

    //删除触发器
    _scheduler?.TryRemoveTrigger(trigger.TriggerId, out _);
    Console.WriteLine($"触发器个数{_scheduler.GetTriggers().Count()}");
    return _systemService.GetDescription();
}

测试结果

输入图片说明

百小僧 修改了描述
百小僧 修改了标题

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
974299 monksoul 1578937227
C#
1
https://gitee.com/dotnetchina/Furion.git
git@gitee.com:dotnetchina/Furion.git
dotnetchina
Furion
Furion

搜索帮助