elsa-core/src/samples/Elsa.Samples.DistributedLock/Program.cs

31 lines
1.3 KiB
C#
Raw Normal View History

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using NodaTime;
using System.Threading.Tasks;
using YesSql.Provider.Sqlite;
namespace Elsa.Samples.DistributedLock
{
/// <summary>
/// Demonstrates the use of a distributed locking provider.
/// Make sure that you have a Redis host installed or use the docker-compose.yaml file to run it on Docker.
/// </summary>
internal static class Program
{
private static async Task Main() => await CreateHostBuilder().UseConsoleLifetime().Build().RunAsync();
public static IHostBuilder CreateHostBuilder() =>
Host.CreateDefaultBuilder()
.ConfigureServices(
(hostContext, services) =>
{
services
.AddElsa(options => options
.UsePersistence(db => db.UseSqLite("Data Source=elsa.db;Cache=Shared"))
.UseRedisLockProvider("localhost:6379,abortConnect=false"))
.AddConsoleActivities()
.AddTimerActivities(timer => timer.SweepInterval = Duration.FromSeconds(5))
.AddWorkflow<RecurringWorkflow>();
});
}
}