/
Prozesse
Prozesse
Erstelle einen Service, wo du die nötigen Dependencies injecten lässt.
public class LoggingProvider : ILoggingProvider
{
public LoggingProvider(
[NotNull] IDataSessionFactory sessionFactory,
[NotNull] ILogger logger)
{
_dataSessionFactory = sessionFactory ?? throw new ArgumentNullException(nameof(sessionFactory));
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
public void SampleService(QuinoProcessContext context)
{
_logger.Information("{name} started", nameof(DeleteLogsAfternDays));
using var session = _dataSessionFactory.CreateSession();
//TODO: Add action
context.Log(LogEntryType.Info,$"SampleService didsomething");
}
Logge in den ILogger oder in den Process-Logger (QuinoProcessContext.Log()), der in die DB geschrieben wird.
Baue eine Builder, der von OptionalMetadataBuilder vererbt. Darin kannst du auch die ProcessGroup definieren.
[UsedImplicitly]
public class LoggingBuilder : OptionalMetadataBuilder
{
protected override void AddCoreElements()
{
var processGroup = Builder.Add.ProcessGroup("Logging");
Builder.Add.Process( nameof(LoggingProvider.DeleteLogsAfternDays), processGroup)
.Body<ILoggingProvider>((loggingProvider, context) => loggingProvider.DeleteLogsAfternDays(context))
.Schedule(@"0 0 0 ? * *")
.MaxRandomDelayInSeconds(60 * 60 * 3)
.AllowManualExecution()
.DeleteLogsAfternDays(30);
}
}
Injecte den Service und den Builder z.B. in QuinoProcessExtensions
public static class QuinoProcessExtensions
{
public static IServiceCollection AddQuinoProcess([NotNull] this IServiceCollection serviceCollection)
{
serviceCollection
.UseBuilder<QuinoProcessBuilder>()
.UseRegisterSingle<IQuinoProcessExecutor, QuinoProcessService>()
.UseDataGenerator<QuinoProcessDataGenerator>()
.AddQuartz()
.AddQuartzHostedService(config =>
{
config.WaitForJobsToComplete = true;
config.StartDelay = TimeSpan.FromSeconds(10);
})
.AddHostedService(services => services.GetInstance<IQuinoProcessExecutor>() as QuinoProcessService)
.UseBuilder<LoggingBuilder>()
.UseRegisterSingle<ILoggingProvider, LoggingProvider>();
return serviceCollection;
}
}
Danach siehst du deinen neuen Process unter Admin->Processes und du kannst beginnen zu testen.
, multiple selections available,
Related content
Prozessverwaltung
Prozessverwaltung
Read with this
Persistence Interceptor
Persistence Interceptor
More like this
Actions
Actions
More like this
Calculated Properties
Calculated Properties
More like this
Auditing
Auditing
More like this