c# - Start process with QUARTZ.NET
问题描述
This is method in my .NET
console application program.cs
class
public static void Run()
{
var isRunning = false;
IServiceCollection services = new ServiceCollection();
Startup startup = new Startup();
var serviceProvider = startup.ConfigureServices(services);
IWindsorContainer _container =
DateTime thisDay = DateTime.Today;
while (true)
{
if (!isRunning)
{
isRunning = true;
var configuration = _container.Resolve<IConfigurationRoot>();
var _process = _container.Resolve<Process.Process>();
var cron = (configuration[Enums.ExecutionTime]);
if (thisDay == DateTime.Now)
{
try
{
_process.MainProcess();
}
catch (Exception ex)
{
}
finally
{
isRunning = false;
Thread.Sleep(secondsForSleep);
_container.Release(_process);
}
}
}
}
}
I want to use quartz.net for starting _process.MainProcess()
However all examples I can find are with starting Jobs
does anyone know if it supports starting process or is there a workaround for that?
解决方案
您只需实现IJob
接口并让作业运行该过程:
[DisallowConcurrentExecution]
public class MyProcessJob : IJob
{
private readonly Process _process;
public MyProcessJob(Process process)
{
_process = process;
}
public void Execute(IJobExecutionContext context)
{
_process.MainProcess();
}
}
Quartz.NET 快速入门指南中很好地解释了作业创建和调度。
推荐阅读
- javascript - 如何在我的侧边栏中悬停时进行动态下拉?
- java - Java 正则表达式必须在字符串的开头或结尾匹配
- javascript - 选择上的下拉按钮禁用一些第二个下拉选项
- python - 矩阵未对齐错误消息激发确认矩阵的适当尺寸
- python - 如何在 AWS CDK 中创建侦听器规则?
- ios - 当我尝试使用 for 循环在另一个图像上绘制图像时,IOS App 占用了太多内存
- javascript - 用于计算多个文本区域中的字母的功能
- c# - 我可以将从数组中获取与创建数组相结合吗?
- reactjs - 了解 React hooks useEffect 函数。useffect 中的回调函数(即取消订阅)何时被调用?
- python - Spark(Pyspark) - 如何将 Dataframe String 列转换为 dataframe 多列