private static IJobDetail CreateJob(UserConnection userConnection, IAppSchedulerWraper appSchedulerWrapper, int maintenanceFrequency, string jobName, string jobGroup) { var parameters = new Dictionary <string, object> { { _initialFrequencyParameterName, maintenanceFrequency } }; return(appSchedulerWrapper.CreateClassJob <ProcessMaintenanceJob>(jobName, jobGroup, userConnection, parameters, true)); }
/// <summary> /// Registers <see cref="ProcessMaintenanceJob"/> in scheduler. /// </summary> /// <param name="userConnection">User connection.</param> /// <param name="appSchedulerWrapper">Scheduler.</param> public static void Register(UserConnection userConnection, IAppSchedulerWraper appSchedulerWrapper) { const string oldJobGroup = "ProcessLogArchivingJobGroup"; const string oldJobName = "Terrasoft.Configuration.ProcessLogArchivingJob"; if (appSchedulerWrapper.DoesJobExist(oldJobName, oldJobGroup)) { appSchedulerWrapper.RemoveJob(oldJobName, oldJobGroup); } int maintenanceFrequency = GetMaintenanceFrequencySysSetting(userConnection); Register(userConnection, appSchedulerWrapper, maintenanceFrequency); }
public BulkDeduplicationManager(UserConnection userConnection, IAppSchedulerWraper appSchedulerWraper) : base(userConnection) { if (string.IsNullOrEmpty(DeduplicationWebApiUrl)) { Log.Error("DeduplicationWebApiUrl is empty."); } var userConnectionConstructorArgument = new ConstructorArgument("userConnection", userConnection); _startDeduplicationRequestFactory = ClassFactory.Get <IStartDeduplicationRequestFactory>( userConnectionConstructorArgument); _bulkDeduplicationTaskClient = ClassFactory.Get <IBulkDeduplicationTaskClient>( userConnectionConstructorArgument); _appSchedulerWraper = appSchedulerWraper; }
/// <summary> /// Processes mailbox status from exchange listener service. /// </summary> /// <param name="mailboxState"><see cref="MailboxState"/> instance.</param> public void ProcessMailboxState(MailboxState mailboxState) { _log.Info($"ProcessConnectionStatus for {mailboxState.SenderEmailAddress} started."); var parameters = new Dictionary <string, object> { { "SenderEmailAddress", mailboxState.SenderEmailAddress }, { "Avaliable", mailboxState.Avaliable }, { "ExceptionClassName", mailboxState.ExceptionClassName }, { "ExceptionMessage", mailboxState.ExceptionMessage }, { "Context", mailboxState.Context } }; IAppSchedulerWraper schedulerWraper = ClassFactory.Get <IAppSchedulerWraper>(); schedulerWraper.ScheduleImmediateJob <MailboxStateEventExecutor>( $"ExchangeListerProcessConnectionStatus_{mailboxState.SenderEmailAddress}_{Guid.NewGuid().ToString()}", mailboxState.BpmUserWorkspace, mailboxState.BpmUserName, parameters, true); _log.Info($"ProcessConnectionStatus for {mailboxState.SenderEmailAddress} ended."); }
private static void Register(UserConnection userConnection, IAppSchedulerWraper appSchedulerWrapper, int maintenanceFrequency) { string jobName = typeof(ProcessMaintenanceJob).FullName; var jobGroup = "ProcessMaintenanceGroup"; if (appSchedulerWrapper.DoesJobExist(jobName, jobGroup)) { appSchedulerWrapper.RemoveJob(jobName, jobGroup); _log.Info($"ProcessMaintenanceJob removed."); } if (maintenanceFrequency <= 0) { return; } IJobDetail job = CreateJob(userConnection, appSchedulerWrapper, maintenanceFrequency, jobName, jobGroup); appSchedulerWrapper.Instance.ScheduleJob(job, GetJobTrigger(maintenanceFrequency)); _log.Info($"ProcessMaintenanceJob scheduled with {maintenanceFrequency} minutes frequency."); }
/// <summary> /// Schedules the next run of the given job. Deletes existing instances before planning new one. /// </summary> /// <param name="userConnection">The user connection.</param> /// <param name="jobName">Name of the job.</param> /// <param name="jobExecutor">The job executor.</param> /// <param name="executionPeriod">Periodicity of the given job's trigger (minutes).</param> public static void ScheduleNextRun(UserConnection userConnection, string jobName, IJobExecutor jobExecutor, int executionPeriod) { if (executionPeriod < 0) { return; } IAppSchedulerWraper schedulerWrapper = SchedulerWraper; IScheduler scheduler = schedulerWrapper.Instance; SysUserInfo currentUser = userConnection.CurrentUser; string className = jobExecutor.GetType().AssemblyQualifiedName; IJobDetail job = schedulerWrapper.CreateClassJob(className, jobName, userConnection.Workspace.Name, currentUser.Name, null, true); ITrigger trigger = TriggerBuilder.Create() .WithIdentity(className + "Trigger") .StartAt(DateTimeOffset.Now.AddMinutes(executionPeriod)) .Build(); scheduler.ScheduleJob(job, new Quartz.Collection.HashSet <ITrigger> { trigger }, true); }
public ProcessMaintenanceJob(IProcessLogMaintainer processLogMaintainer, IAppSchedulerWraper appSchedulerWrapper) { _processLogMaintainer = processLogMaintainer; _appSchedulerWrapper = appSchedulerWrapper; }
public CampaignJobDispatcher(UserConnection userConnection, IAppSchedulerWraper schedulerWraper) : this(userConnection) { _appSchedulerWraper = schedulerWraper; }