首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >石英.NET中网络时间服务器(SNTP)的调度

石英.NET中网络时间服务器(SNTP)的调度
EN

Stack Overflow用户
提问于 2013-06-11 15:12:18
回答 1查看 588关注 0票数 0

我需要在调度作业时使用网络验证的时间。

解决办法?

石英.NET的细节-在那里我被困在我的调查

我无法找到如何使用属性StartTimeUtc of ITrigger (用下面的StartAt方法设置)?

代码语言:javascript
运行
复制
var sleepTrigger = (ISimpleTrigger)TriggerBuilder.Create()
            .WithIdentity("SleepTimeTrigger")
            .StartAt(sleepRunTime)
            .WithSimpleSchedule(x => x.WithIntervalInHours(24).RepeatForever())
            .Build();

也就是说,我需要检查使用StartTimeUtc时间戳的具体实现,以便更改调度源代码/添加一个选项来独立于本地系统时间进行调度,并使用网络时间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-25 22:57:26

Quartz命名空间下有一个静态类,它有两个方法接收一个Func<DateTimeOffset>,您可以使用它返回您的NTP调优日期/时间。它是“正式”Quartz日期/时间源,它的实现允许简单的单元测试,但也可以用于自定义日期/时间。下面是一个示例用法:

代码语言:javascript
运行
复制
SystemTime.Now = () => {
    //return your custom datetime here
    /*
    var ntpTime = new NtpTime(server);
    return ntpTime.NowDateTimeOffset;
    */
};

SystemTime.UtcNow  = () => {
    //return your custom datetime here
    /*
    var ntpTime = new NtpTime(server);
    return ntpTime.UtcNowDateTimeOffset;
    */
};

注意上面的代码不会编译,您需要为NowUtcNow实现自己的获取当前NowUtcNow的方法。从NTP获取时间有很多方法,您可以找到一些方法这里这里。出于性能考虑,我建议您的实现缓存当前的日期时间并在本地增加它,而不是在每次调用时请求ntp服务器。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17047615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档