.NET 功能齐全的开源分布式作业调度系统,可从最小的应用程序到大型企业系统使用。
41KB
Windows/Linux/MacOS
守护进程部署Install-Package Sundial
dotnet add package Sundial
我们在主页上有不少例子,这是让您入门的第一个:
IJob
接口:public class MyJob : IJob { private readonly ILogger<MyJob> _logger; public MyJob(ILogger<MyJob> logger) { _logger = logger; } public Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken) { _logger.LogInformation($"{context}"); return Task.CompletedTask; } }
Startup.cs
注册 AddSchedule
服务和作业:services.AddSchedule(options => { options.AddJob<MyJob>(Triggers.PeriodSeconds(5)); });
info: 2022-12-05 19:32:56.3835407 +08:00 星期一 L System.Logging.ScheduleService[0] #1 Schedule hosted service is running. info: 2022-12-05 19:32:56.3913451 +08:00 星期一 L System.Logging.ScheduleService[0] #1 Schedule hosted service is preloading... info: 2022-12-05 19:32:56.4322887 +08:00 星期一 L System.Logging.ScheduleService[0] #1 The <job1_trigger1> trigger for scheduler of <job1> successfully appended to the schedule. info: 2022-12-05 19:32:56.4347959 +08:00 星期一 L System.Logging.ScheduleService[0] #1 The scheduler of <job1> successfully appended to the schedule. warn: 2022-12-05 19:32:56.4504555 +08:00 星期一 L System.Logging.ScheduleService[0] #1 Schedule hosted service preload completed, and a total of <1> schedulers are appended. info: 2022-12-05 19:33:01.5100177 +08:00 星期一 L MyJob[0] #13 <job1> [C] <job1 job1_trigger1> 5s 1ts 2022-12-05 19:33:01.395 -> 2022-12-05 19:33:06.428 info: 2022-12-05 19:33:06.4676792 +08:00 星期一 L MyJob[0] #13 <job1> [C] <job1 job1_trigger1> 5s 2ts 2022-12-05 19:33:06.428 -> 2022-12-05 19:33:11.435 info: 2022-12-05 19:33:11.4460946 +08:00 星期一 L MyJob[0] #16 <job1> [C] <job1 job1_trigger1> 5s 3ts 2022-12-05 19:33:11.435 -> 2022-12-05 19:33:16.412
JobExecutionContext
重写了 ToString()
方法并提供以下几种格式:
# 持续运行格式 <作业Id> 作业描述 [并行C/串行S] <作业Id 触发器Id> 触发器字符串 触发器描述 触发次数ts 触发时间 -> 下一次触发时间 # 触发停止格式 <作业Id> 作业描述 [并行C/串行S] <作业Id 触发器Id> 触发器字符串 触发器描述 触发次数ts 触发时间 [触发器终止状态]
您可以在主页找到 Sundial 文档。
该存储库的主要目的是继续发展 Sundial 核心,使其更快、更易于使用。Sundial 的开发在 Gitee 上公开进行,我们感谢社区贡献错误修复和改进。
Sundial 采用 MIT 开源许可证。
MIT License Copyright (c) 2020-2022 百小僧, Baiqian Co.,Ltd. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
http://blog.csdn.net/arielxp/archive/2004/06/27/27929.aspx
sundials自带的例子都是c接口,不太适合我的项目中使用,所以 尝试一下怎么用c++的形式来包装一下,方便使用 ODE原始来源 由OdeInt的例子修改而来:https://www.boost.org/doc/libs/1_67_0/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/stiff_systems.html 后续目
Package Purpose CVODE solves initial value problems for ordinary differential equation (ODE) systems. CVODES solves ODE systems and includes sensitivity analysis capabilities (forward and adjoint). AR
本文向大家介绍Python使用multiprocessing实现一个最简单的分布式作业调度系统,包括了Python使用multiprocessing实现一个最简单的分布式作业调度系统的使用技巧和注意事项,需要的朋友参考一下 mutilprocess像线程一样管理进程,这个是mutilprocess的核心,他与threading很是相像,对多核CPU的利用率会比threading好的多。 介绍 P
到目前为止,我们根据它们的到达时间(在FCFS调度中)调度这些进程。 但是,SJF调度算法根据其突发时间安排进程。 在SJF调度中,就绪队列中可用进程列表中的突发时间最短的进程将在下一个进行调度。 然而,预测一个过程所需的突发时间是非常困难的,因此这个算法在系统中很难实现。 SJF的优势 最大吞吐量 最低的平均等候时间和周转时间 SJF的缺点 可能会面临饥饿问题 这是不可实现的,因为一个进程的确切
WeBWorK 是一个用 Perl 语言开发的,用来给学生布置家庭作业的系统,基于Web。
嗨,伙计们。我们被分配了一个关于抢占优先调度的任务,我真的不知道如何做到这一点,因为两个或多个进程具有相同的优先级编号。 我必须做一个甘特图,计算周转时间和平均等待时间。 如果可能的话,你们能否发布一个关于如何做到这一点的分步解决方案,以便我可以研究它是如何完成的。 谢谢你们的帮助。
主要内容:以下是纠正/补充内容:先来先服务(FCFS)调度算法根据其到达时间简单地调度作业。 就绪队列中第一个工作将首先获得CPU。 工作到达时间越少,工作得到的CPU就越快。 如果第一个进程的突发时间是所有作业中最长的,则FCFS调度可能会导致饥饿问题。 FCFS的优势 简单 容易 先到先得 FCFS的缺点 调度方法是非抢先式的,该进程将运行到完成。 由于算法的非抢先性,可能会出现饥饿问题。 尽管实现起来很容易,但由于平均等待
主要内容:进程控制块中保存了什么?,为什么需要调度?在像MS DOS这样的单编程系统中,当进程等待任何I/O操作完成时,CPU仍然是空闲的。 这是一个开销,因为它浪费时间并导致饥饿问题。 但是,在多程序系统中,CPU在进程的等待时间内不会保持空闲状态,而是开始执行其他进程。 操作系统必须定义CPU将被给予哪个进程。 在多程序系统中,操作系统调度CPU上的进程以获得最大的利用率,此过程称为CPU调度。 操作系统使用各种调度算法来调度过程。 这是短期调