Кварц. net двойное исполнение - Umbraco - PullRequest
0 голосов
/ 16 января 2020

У меня есть следующий код:

public class JobScheduler
{
    public static void Start()
    {
        IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler();
        scheduler.Start();

        //JOB - Automatically renew member subscriptions
        IJobDetail subscriptionsJob = JobBuilder.Create<UpdateSubscriptions>().Build();


        ITrigger subscriptionsTrigger = TriggerBuilder.Create()
            .WithIdentity("updateSubscriptions", "updateGroup")
            .StartNow()
            .WithSimpleSchedule(x => x
                .WithIntervalInHours(24)
                .RepeatForever()
            )
            .Build();
        scheduler.ScheduleJob(subscriptionsJob, subscriptionsTrigger);

    }
}

Теперь, всякий раз, когда это выполняется, кажется, что два потока фактически выполняют это, создавая непредвиденные проблемы, когда код выполняется дважды.

Я не совсем уверен, почему это происходит? Кто-нибудь может увидеть, что я мог сделать неправильно?

Стоит отметить, что это приложение umbraco

Обновление

Обратите внимание, что моя работа имеет атрибут DisallowConcurrentExecution:

[DisallowConcurrentExecution]
public class UpdateSubscriptions : IJob
{

Обновление журнала

Итак, я проверил мой журнал и, как и ожидалось, над файлом работают два рабочих потока:

P19484/D2/TDefaultQuartzScheduler_Worker-3
P166696/D2/TDefaultQuartzScheduler_Worker-1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...