重复性工作的延续

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

由于BackgroundJob没有添加/更新,因此我尝试着处理重复工作,然后设置一个背景连续性,在首次生成后将其删除。但这不仅可以删除,还可以使我的定期工作在第一次生成后每秒生成一次。

[HttpGet("{day}/{month}/{hour}/{minute}/{second}/{jobID}")]
        public string Get(int day, int month, int hour, int minute, int second, string jobID)
        {
            RecurringJob.AddOrUpdate(jobID, () => Console.WriteLine("At " + hour + " hour " + minute + " minute " +
                second + " second, day " 
                + day + " month " + month),
                "*/" + second + " " + minute + " " + hour + " " + day + " " + month + " *", TimeZoneInfo.Local);
            BackgroundJob.ContinueWith(jobID, () => RecurringJob.RemoveIfExists(jobID));
            return "value";
        }
hangfire
1个回答
0
投票

显然,周期性工作不能与Backgroundjob.ContinueWith一起使用。如果我想使其像计划作业一样工作并且仍然能够更新内部时间跨度,则需要设置一个函数以将其删除。

[HttpGet("{day}/{month}/{hour}/{minute}/{second}/{jobID}")]
        public string Get(int day, int month, int hour, int minute, int second, string jobID)
        {
            RecurringJob.AddOrUpdate(jobID, () => removeRecurring(jobID),
                "*/" + second + " " + minute + " " + hour + " " + day + " " + month + " *", TimeZoneInfo.Local);
            return "value";
        }
        public void removeRecurring(string jobId)
        {
            Console.WriteLine(DateTime.Now);
            RecurringJob.RemoveIfExists(jobId);
        }
© www.soinside.com 2019 - 2024. All rights reserved.