elsa-core/src/samples/worker/Elsa.Samples.Timers.Hangfire/Program.cs
Rafael Carnucci 4274996dd9
Separate quartz (#516)
* Fix sample Elsa.Samples.FileBasedWorkflow

* Separate Quartz from Elsa.Activities.Timers

* Incremental work on Hangfire integration

* Incremental work on Hangfire integration

* Incremental work on Hangfire integration

* Incremental work on Hangfire integration

* Add CancelTimer

* ToCronExpression for Duration

* Removed SweepInterval

* Synchronize access to scheduler

* Refactoring RunHangfireWorkflowJob

* Optimize timer activities to always execute when target time stamp lies in past

* Refactoring TimersOptionsExtensions

* Added common.props and configureawait.props

* Rename CancelTimer to ClearTimer

* Wrong parameter name in comment

* Refactoring TimerConsts and RunQuartzWorkflowJob

Co-authored-by: Rafael Carnucci <rafael.carnucci@icn.de>
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2020-12-23 12:38:09 +01:00

31 lines
1.3 KiB
C#

using System.Threading.Tasks;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using NodaTime;
using Elsa.Activities.Timers.Hangfire.Extensions;
using Hangfire;
namespace Elsa.Samples.Timers
{
internal class Program
{
private static async Task Main() => await CreateHostBuilder().UseConsoleLifetime().Build().RunAsync();
private static IHostBuilder CreateHostBuilder() =>
Host.CreateDefaultBuilder()
.ConfigureServices(
(context, services) =>
{
services
.AddElsa()
.AddConsoleActivities()
.AddTimerActivities(options =>
options.UseHangfire(configure =>
configure.UseSqlServerStorage("Server=(localdb)\\MSSQLLocalDB;Database=ElsaHangfire;Trusted_Connection=True;MultipleActiveResultSets=true")))
.AddWorkflow<RecurringTaskWorkflow>()
.AddWorkflow<CronTaskWorkflow>()
.AddWorkflow<CancelTimerWorkflow>()
.AddWorkflow(new OneOffWorkflow(SystemClock.Instance.GetCurrentInstant().Plus(Duration.FromSeconds(5))));
});
}
}