gpt4 book ai didi

c# - 在 Quartz.net 中安排一个 Action

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:39 24 4
gpt4 key购买 nike

我正在尝试学习 Quartz.NET 的来龙去脉,但在完成我认为非常简单的任务方面并没有取得太大进展。

我有一个接收 Action 和日期时间的方法,我只需要安排 Action X 在时间 Y 运行。

这看起来很简单,但 JobBuilder.Create() 需要一个实现 IJob 的类型参数……但在我得到它之前,我一点也不知道我收到的 Action 做了什么。我不能使用定义明确的 Execute(IJobExecutionContext context) 方法的类,因为我在编译时没有该信息。

我也无法更改方法的签名。我得到一个 Action 和一个 DateTime,这不是我的决定。

Quartz 真的不能处理这个看似简单的任务吗?

最佳答案

我不认为 Quartz 具有这种内置的特殊能力,但在 Quartz 现有的 API 之上实现它是微不足道的:

class RunActionJob : IJob
{
public void Execute(IJobExecutionContext context)
{
var action = context.MergedJobDataMap["action"] as Action;
action();
}
}

public static JobBuilder ActionJob(Action action)
{
return JobBuilder
.Create<RunActionJob>()
.SetJobData(new JobDataMap
{
{"action", action}
});
}

// Usage:

var job = ActionJob(() => Console.WriteLine("task 1..."))
.WithIdentity("task1", "group1")
.Build();

关于c# - 在 Quartz.net 中安排一个 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27956401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com