public static void CancelPeriodic <TJob, TArgs>(this IJobPublisher publisher, TArgs jobArgs, string groupKey) { var periodicRunInfo = new PeriodicRunInfo { NextRunTime = DateTime.MinValue, LastRunTimeUtc = DateTime.MinValue, //important to replace existing job }; publisher.Publish(new[] { JobInfo.For <TJob, TArgs>(jobArgs, periodicRunInfo.NextRunTime, groupKey, null, periodicRunInfo) }); }
public static void Publish <TJob, TArgs>(this IJobPublisher publisher, IEnumerable <TArgs> jobArgs, DateTime?runAtUtc = null, int?jobTimeoutMs = null, PeriodicRunInfo periodicRunInfo = null) { var jobs = new List <JobInfo>(); foreach (var jobArg in jobArgs) { jobs.Add(JobInfo.For <TJob, TArgs>(jobArg, runAtUtc, null, jobTimeoutMs, periodicRunInfo)); } publisher.Publish(jobs); }
public static void PublishPeriodic <TJob, TArgs>(this IJobPublisher publisher, TArgs jobArgs, string groupKey, int repeatSeconds, DateTime?runAtUtc = null, DateTime?endAtUtc = null, int?jobTimeoutMs = null) { var periodicRunInfo = new PeriodicRunInfo { RepeatSeconds = repeatSeconds, NextRunTime = runAtUtc ?? DateTime.UtcNow.AddSeconds(repeatSeconds), EndAtUtc = endAtUtc }; publisher.Publish(new[] { JobInfo.For <TJob, TArgs>(jobArgs, periodicRunInfo.NextRunTime, groupKey, jobTimeoutMs, periodicRunInfo) }); }
public static void CancelPeriodic(string groupKey) { if (JobBatch.IsActive) { var periodicRunInfo = new PeriodicRunInfo { NextRunTime = DateTime.MinValue, LastRunTimeUtc = DateTime.MinValue, //important to replace existing job }; JobBatch.Add(JobInfo.For <TJob, VoidArgs>(null, periodicRunInfo.NextRunTime, groupKey, null, periodicRunInfo)); return; } MassiveJobsMediator.DefaultInstance.CancelPeriodic <TJob>(groupKey); }
public static void PublishPeriodic(TArgs args, string groupKey, int repeatSec, DateTime?runAtUtc = null, DateTime?endAtUtc = null, int?timeoutMs = null) { if (JobBatch.IsActive) { var periodicRunInfo = new PeriodicRunInfo { RepeatSeconds = repeatSec, NextRunTime = runAtUtc ?? DateTime.UtcNow.AddSeconds(repeatSec), EndAtUtc = endAtUtc }; JobBatch.Add(JobInfo.For <TJob, TArgs>(args, periodicRunInfo.NextRunTime, groupKey, timeoutMs, periodicRunInfo)); return; } MassiveJobsMediator.DefaultInstance.PublishPeriodic <TJob, TArgs>(args, groupKey, repeatSec, runAtUtc, endAtUtc, timeoutMs); }
public static void PublishPeriodic <TJob, TArgs>(this IJobPublisher publisher, TArgs jobArgs, string groupKey, string cronExpression, TimeZoneInfo timeZoneInfo = null, DateTime?runAtUtc = null, DateTime?endAtUtc = null, int?jobTimeoutMs = null) { if (!Cron.CronSequenceGenerator.IsValidExpression(cronExpression)) { throw new ArgumentException($"Invalid cron expression ('{cronExpression}')", nameof(cronExpression)); } var periodicRunInfo = new PeriodicRunInfo { NextRunTime = runAtUtc ?? DateTime.UtcNow, EndAtUtc = endAtUtc, CronExp = cronExpression, TzId = timeZoneInfo?.Id }; publisher.Publish(new[] { JobInfo.For <TJob, TArgs>(jobArgs, periodicRunInfo.NextRunTime, groupKey, jobTimeoutMs, periodicRunInfo) }); }
public static void PublishPeriodic(TArgs args, string groupKey, string cronExpression, TimeZoneInfo timeZoneInfo = null, DateTime?runAtUtc = null, DateTime?endAtUtc = null, int?timeoutMs = null) { if (JobBatch.IsActive) { if (!Cron.CronSequenceGenerator.IsValidExpression(cronExpression)) { throw new ArgumentException($"Invalid cron expression ('{cronExpression}')", nameof(cronExpression)); } var periodicRunInfo = new PeriodicRunInfo { NextRunTime = runAtUtc ?? DateTime.UtcNow, EndAtUtc = endAtUtc, CronExp = cronExpression, TzId = timeZoneInfo?.Id }; JobBatch.Add(JobInfo.For <TJob, TArgs>(args, periodicRunInfo.NextRunTime, groupKey, timeoutMs, periodicRunInfo)); return; } MassiveJobsMediator.DefaultInstance.PublishPeriodic <TJob, TArgs>(args, groupKey, cronExpression, timeZoneInfo, runAtUtc, endAtUtc, timeoutMs); }
public static JobInfo For <TJob, TJobArgs>(TJobArgs jobArgs, DateTime?runAtUtc, string groupKey = null, int?jobTimeoutMs = null, PeriodicRunInfo periodicRunInfo = null) { return(new JobInfo { RunAtUtc = runAtUtc, JobType = typeof(TJob), ArgsType = typeof(TJobArgs), Args = jobArgs, TimeoutMs = jobTimeoutMs, GroupKey = groupKey, PeriodicRunInfo = periodicRunInfo }); }
public static JobInfo For <TJob, TJobArgs>(TJobArgs jobArgs, string groupKey = null, int?jobTimeoutMs = null, PeriodicRunInfo periodicRunInfo = null) { return(For <TJob, TJobArgs>(jobArgs, null, groupKey, jobTimeoutMs, periodicRunInfo)); }
public static JobInfo For <TJob, TJobArgs>(TJobArgs jobArgs, TimeSpan runIn, string groupKey = null, int?jobTimeoutMs = null, PeriodicRunInfo periodicRunInfo = null) { return(For <TJob, TJobArgs>(jobArgs, DateTime.UtcNow.Add(runIn), groupKey, jobTimeoutMs, periodicRunInfo)); }