Refactor TriggerStore methods and update configurations.
Refactored `TriggerStore` to implement pagination and ordering for `FindManyAsync` methods with support for tenant-agnostic filtering. Modified app settings to change database provider to SQL Server and adjusted logging levels to reduce verbosity. Fixed workflow cancellation service to better handle child instances tasks.
This commit is contained in:
parent
e09f096ef9
commit
3aae05317d
|
|
@ -2,10 +2,9 @@
|
|||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"OpenTelemetry": "Debug",
|
||||
"Microsoft.Hosting.Lifetime": "Information",
|
||||
"Elsa": "Information",
|
||||
"Elsa.Workflows.Runtime.Middleware.Workflows.WorkflowHeartbeatMiddleware": "Debug"
|
||||
"Elsa": "Warning",
|
||||
"Elsa.Workflows.Runtime.Middleware.Workflows.WorkflowHeartbeatMiddleware": "Warning"
|
||||
}
|
||||
},
|
||||
"HostBuilder": {
|
||||
|
|
@ -26,7 +25,7 @@
|
|||
"RabbitMq": "amqp://guest:guest@localhost:5672",
|
||||
"Redis": "localhost:6379,abortConnect=false"
|
||||
},
|
||||
"DatabaseProvider": "Sqlite",
|
||||
"DatabaseProvider": "SqlServer",
|
||||
"Multitenancy": {
|
||||
"Tenants": [
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
using Elsa.Common.Entities;
|
||||
using Elsa.Common.Models;
|
||||
using Elsa.Extensions;
|
||||
using Elsa.MongoDb.Common;
|
||||
using Elsa.Workflows.Runtime;
|
||||
using Elsa.Workflows.Runtime.Entities;
|
||||
|
|
@ -6,6 +8,7 @@ using Elsa.Workflows.Runtime.Filters;
|
|||
using Elsa.Workflows.Runtime.OrderDefinitions;
|
||||
using JetBrains.Annotations;
|
||||
using MongoDB.Driver.Linq;
|
||||
using Open.Linq.AsyncExtensions;
|
||||
|
||||
namespace Elsa.MongoDb.Modules.Runtime;
|
||||
|
||||
|
|
@ -37,14 +40,16 @@ public class MongoTriggerStore(MongoDbStore<StoredTrigger> mongoDbStore) : ITrig
|
|||
return await mongoDbStore.FindManyAsync(query => Filter(query, filter), filter.TenantAgnostic, cancellationToken);
|
||||
}
|
||||
|
||||
public ValueTask<Page<StoredTrigger>> FindManyAsync(TriggerFilter filter, PageArgs pageArgs, CancellationToken cancellationToken = default)
|
||||
public async ValueTask<Page<StoredTrigger>> FindManyAsync(TriggerFilter filter, PageArgs pageArgs, CancellationToken cancellationToken = default)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
return await FindManyAsync(filter, pageArgs, new StoredTriggerOrder<string>(x => x.Id, OrderDirection.Ascending), cancellationToken);
|
||||
}
|
||||
|
||||
public async ValueTask<Page<StoredTrigger>> FindManyAsync<TProp>(TriggerFilter filter, PageArgs pageArgs, StoredTriggerOrder<TProp> order, CancellationToken cancellationToken = default)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
var count = await mongoDbStore.CountAsync(queryable => Filter(queryable, filter), cancellationToken);
|
||||
var results = await mongoDbStore.FindManyAsync(queryable => Paginate(Order(Filter(queryable, filter), order), pageArgs), cancellationToken).ToList();
|
||||
return new(results, count);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
|
|
@ -73,4 +78,14 @@ public class MongoTriggerStore(MongoDbStore<StoredTrigger> mongoDbStore) : ITrig
|
|||
{
|
||||
return filter.Apply(queryable);
|
||||
}
|
||||
|
||||
private IQueryable<StoredTrigger> Order<TOrderBy>(IQueryable<StoredTrigger> queryable, StoredTriggerOrder<TOrderBy> order)
|
||||
{
|
||||
return queryable.OrderBy(order);
|
||||
}
|
||||
|
||||
private IQueryable<StoredTrigger> Paginate(IQueryable<StoredTrigger> queryable, PageArgs pageArgs)
|
||||
{
|
||||
return queryable.Paginate(pageArgs);
|
||||
}
|
||||
}
|
||||
|
|
@ -97,7 +97,7 @@ public class WorkflowCancellationService(
|
|||
var childInstances = (await workflowInstanceStore.FindManyAsync(filter, cancellationToken)).ToList();
|
||||
|
||||
if (childInstances.Any())
|
||||
tasks.AddRange(CancelWorkflows(childInstances, cancellationToken));
|
||||
tasks.Add(CancelWorkflows(childInstances, cancellationToken));
|
||||
}
|
||||
|
||||
await Task.WhenAll(tasks);
|
||||
|
|
|
|||
Loading…
Reference in a new issue