Продолжения для повторяющейся работы - PullRequest
0 голосов
/ 13 февраля 2020

Поскольку у 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";
        }

1 Ответ

0 голосов
/ 14 февраля 2020

Видимо повторяющаяся работа не может идти с 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);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...