-
Notifications
You must be signed in to change notification settings - Fork 0
Concept
QueDuler generalizes any work flows into some pre-determined flows which are capsulated in its main package.
you only need to implement some interfaces and properly configure them once in your startup.
here a simple example will be provided.
in simplest form services.AddQueduler(a => a.AddJobAssemblies(typeof(Program)));
you only need to provide any assembly that contains your job classes.
QueDuler is completely modular, so in the Core package, there is only logic.
to actually run the jobs you need to add other packages.
you can build your plug-in for your preferred tool(will be explained further).
switching between the same duty plug-ins would be pain-free, with only several lines of code and without consequences.
there are several ready-to-use and Production-tested packages.
If you need scheduling add one of these:
wraps around the official HangFier.
doing so you need to pass HangFier config down the line like these:
services.AddQueduler(a => a.AddJobAssemblies(typeof(Program)) .AddHangfireScheduler(services, config => config.SetDataCompatibilityLevel(CompatibilityLevel.Version_170) .UseSimpleAssemblyNameTypeSerializer() .UseRecommendedSerializerSettings() .UsePostgreSqlStorage(Configuration.GetConnectionString(hangFireConnection), new PostgreSqlStorageOptions { QueuePollInterval = TimeSpan.FromSeconds(30), InvisibilityTimeout = TimeSpan.FromHours(8) `<br>` }), op => { op.Queues = new[] { "default", JoberStaticMembers.Jober }; }));
a simple in-memory scheduling module.
If you need to use queueing, pub-sub, triggering events, etc. you can use this:
wraps around confluent kafka client for DotNet.
any class