Цепочка работы не выполняет задание последовательноC#

Место общения программистов C#
Anonymous
Цепочка работы не выполняет задание последовательно

Сообщение Anonymous »

Я использую Quartz.net для планирования серии заданий, которые должны выполняться в определенной последовательности. Класс Quartzscheduler. < /P>
public class QuartzScheduler {
public static void Configure(IServiceCollectionQuartzConfigurator q, IapConfiguration config)
{
q.UseDedicatedThreadPool(x => x.MaxConcurrency = 1);
q.UsePersistentStore(x =>
{
x.UseProperties = true;
x.UseClustering();
x.UsePostgres(ReplaceParametersWithEnvVariables(config.IapDB));
x.UseNewtonsoftJsonSerializer();
});
q.UseTimeZoneConverter();
}

public static IScheduler RegisterJobs(IScheduler scheduler, IapConfiguration config)
{
#region Upload Group scheduling
var uploadGroup = "UploadGroup";

// Create Job Keys
JobKey uploadJobKey1 = JobKey.Create(JobConstant.Upload_IGRecChannel, uploadGroup);
JobKey uploadJobKey2 = JobKey.Create(JobConstant.Upload_Languages, uploadGroup);
JobKey uploadJobKey3 = JobKey.Create(JobConstant.Upload_Education, uploadGroup);
JobKey uploadJobKey4 = JobKey.Create(JobConstant.Upload_IntWorkExp, uploadGroup);
JobKey uploadJobKey5 = JobKey.Create(JobConstant.Upload_ExtWork, uploadGroup);
JobKey uploadJobKey6 = JobKey.Create(JobConstant.Upload_Tagline, uploadGroup);
JobKey uploadJobKey7 = JobKey.Create(JobConstant.IntensityJob, uploadGroup);
JobKey uploadJobKey8 = JobKey.Create(JobConstant.AdminJob, uploadGroup);

// Create Job Details
IJobDetail uploadJob1 = JobBuilder.Create()
.WithIdentity(uploadJobKey1)
.StoreDurably(true)
.Build();

IJobDetail uploadJob2 = JobBuilder.Create()
.WithIdentity(uploadJobKey2)
.StoreDurably(true)
.Build();

IJobDetail uploadJob3 = JobBuilder.Create()
.WithIdentity(uploadJobKey3)
.StoreDurably(true)
.Build();

IJobDetail uploadJob4 = JobBuilder.Create()
.WithIdentity(uploadJobKey4)
.StoreDurably(true)
.Build();

IJobDetail uploadJob5 = JobBuilder.Create()
.WithIdentity(uploadJobKey5)
.StoreDurably(true)
.Build();

IJobDetail uploadJob6 = JobBuilder.Create()
.WithIdentity(uploadJobKey6)
.StoreDurably(true)
.Build();

IJobDetail uploadJob7 = JobBuilder.Create()
.WithIdentity(uploadJobKey7)
.StoreDurably(true)
.Build();

IJobDetail uploadJob8 = JobBuilder.Create()
.WithIdentity(uploadJobKey8)
.StoreDurably(true)
.Build();

// Create Trigger for the first job
ITrigger uploadJobTrigger1 = TriggerBuilder.Create()
.WithIdentity(JobConstant.Upload_IGRecChannel + "Trigger", uploadGroup)
.StartNow()
.Build();

// Configure Job Listener for chaining
JobChainingJobListener listener2 = new JobChainingJobListener("Upload Chain");
listener2.AddJobChainLink(uploadJobKey1, uploadJobKey2);
listener2.AddJobChainLink(uploadJobKey2, uploadJobKey3);
listener2.AddJobChainLink(uploadJobKey3, uploadJobKey4);
listener2.AddJobChainLink(uploadJobKey4, uploadJobKey5);
listener2.AddJobChainLink(uploadJobKey5, uploadJobKey6);
listener2.AddJobChainLink(uploadJobKey6, uploadJobKey7);
listener2.AddJobChainLink(uploadJobKey7, uploadJobKey8);

scheduler.ListenerManager.AddJobListener(listener2, GroupMatcher.GroupEquals(uploadGroup));

// Schedule and add jobs sequentially
scheduler.ScheduleJob(uploadJob1, uploadJobTrigger1);
scheduler.AddJob(uploadJob2, false, true);
scheduler.AddJob(uploadJob3, false, true);
scheduler.AddJob(uploadJob4, false, true);
scheduler.AddJob(uploadJob5, false, true);
scheduler.AddJob(uploadJob6, false, true);
scheduler.AddJob(uploadJob7, false, true);
scheduler.AddJob(uploadJob8, false, true);

return scheduler;
#endregion Upload Group scheduling
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... n-sequence

Вернуться в «C#»