如何使用Hangfire运行基于DateTime的定期作业? [重复]

问题描述 投票:0回答:1

我正在ASP.NET Core应用中使用Hangfire。我想做这样的工作:每分钟() => Console.WriteLine($"Triggered At {DateTime.Now.ToString()} !!")。我希望得到这个结果:

Triggered At 5/16/2020 3:05:40 PM
Triggered At 5/16/2020 3:06:40 PM
Triggered At 5/16/2020 3:07:40 PM
Triggered At 5/16/2020 3:08:40 PM

但是我得到的结果如下:

Triggered At 5/16/2020 3:05:40 PM
Triggered At 5/16/2020 3:05:40 PM
Triggered At 5/16/2020 3:05:40 PM
Triggered At 5/16/2020 3:05:40 PM

我已使用此代码:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    ...
    ...
    ...
    app.UseHangfireDashboard();

    RecurringJob.AddOrUpdate("TestJob",
        () => Console.WriteLine($"Triggered At {DateTime.Now.ToString()} !!"), "* * * * *");

    app.UseMvc();
}

我要去哪里错了?

谢谢

c# asp.net-core .net-core hangfire
1个回答
1
投票

我认为您应该将其包装在方法中。

Hangfire serializes arguments

public static void Method() {
   Console.WriteLine($"Triggered At {DateTime.Now.ToString()} !!");
}

 RecurringJob.AddOrUpdate("TestJob",
        () => Method(), "* * * * *");
© www.soinside.com 2019 - 2024. All rights reserved.