Commit graph

255 commits

Author SHA1 Message Date
Sipke Schoorstra 2a6d8f9bfe Synchronize Azure Service Bus queue worker based on correlation ID to prevent multiple workflow instances with same correlation ID 2021-01-19 18:19:36 +01:00
Sipke Schoorstra f57b834d36 Fix Azure Service Bus queue worker
This fixes an issue with message / workflow correlation.
2021-01-18 19:52:02 +01:00
Sipke Schoorstra 4ef40c3a4d Update StartAt 2021-01-16 18:50:47 +01:00
Sipke Schoorstra d3196eea22 Cleanup 2021-01-16 12:52:08 +01:00
Sipke Schoorstra 4ebd41cc21 Fix Azure Service Bus queue worker trigger 2021-01-16 12:47:04 +01:00
Sipke Schoorstra 279cb1b08d Fix service bus synchronized access 2021-01-16 12:46:45 +01:00
Sipke Schoorstra 7d576a7ddc Fix Azure Service Bus queue worker 2021-01-15 14:56:31 +01:00
Sipke Schoorstra fe6aa7d9ff Fix OutcomeBuilder bug 2021-01-14 23:28:08 +01:00
Sipke Schoorstra 89dfba8269
Add source file + line number to execution log. (#571)
* Add source and activity type to WorkflowExecutionLogRecord

* Update builder extensions
2021-01-14 21:45:28 +01:00
Sipke Schoorstra fcfe7f08b4 Change For/While/ForEach/IfElse behavior
Before this change, the aforementioned activities would always schedule the Done outcome.
After this change, the Done outcome is scheduled **after** the Iterate branch and True or False branches have completed
2021-01-12 09:28:48 +01:00
Sipke Schoorstra 67cfbb6c1a Run workflows directly from Azure queue 2021-01-10 17:08:56 +01:00
Sipke Schoorstra 49d4e5bb36 Optimize workflow trigger re-indexing 2021-01-10 13:43:34 +01:00
Sipke Schoorstra 7aae2d0fa8 Run timer startup job in the background 2021-01-09 14:49:42 +01:00
Sipke Schoorstra 9bfe7d474a Fix queue worker workflow selector predicate 2021-01-09 12:51:00 +01:00
Sipke Schoorstra dd72ba3f14 Fix StartAt issue 2021-01-08 22:09:52 +01:00
Sipke Schoorstra 409bf36e7e Release distributed lock 2021-01-08 22:00:44 +01:00
Sipke Schoorstra 3cfc2ad665 Remove unused namespaces 2021-01-08 17:40:32 +01:00
Sipke Schoorstra 502850889d Update Hangfire job 2021-01-08 11:34:10 +01:00
Sipke Schoorstra 9e63d9ad69
Distributed workflow execution support (#559)
* Incremental work on workflow message queuing

* Add extension to register message consumers

* Update Rebus logging to use Microsoft Extensions Logging

* Synchronize quartz job and run instance consumer with distributed locking

* Add service bus options
2021-01-08 11:14:00 +01:00
Sipke Schoorstra 83242ddecd
EF Core Persistence Provider (#557)
* Add EF Core persistence provider

* Add EF Core migration runner

* Fix potential duplicate queue registrations

* Update EF Core projects
2021-01-07 13:01:19 +01:00
Sipke Schoorstra 96464c988c Update ScheduleWorkflowResult to schedule job AFTER workflow is suspended 2021-01-03 19:21:50 +01:00
Sipke Schoorstra 1aee05d82f Add logging to Timer 2021-01-03 19:19:03 +01:00
Sipke Schoorstra 7c2e9f9342 Unschedule triggers when blocking timers are removed 2021-01-02 13:51:53 +01:00
Sipke Schoorstra 34983144c3 Optimize synchronized workflow instance execution in parallel 2021-01-02 12:57:27 +01:00
Sipke Schoorstra dcbf14c144 Fix and simplify composite activity + while/for/foreach handling 2021-01-01 17:58:08 +01:00
Sipke Schoorstra 10fe049c10 Experimental bug fixes regarding timer & container scheduling 2020-12-31 17:24:55 +01:00
Sipke Schoorstra 356e0ba0ba Update Azure Service Bus queue worker to schedule workflow execution in the background
This to prevent scenarios where workflows take a long time to execute and the message gets re-delivered.
This change ACKS the message right after the workflow task has been queued internally.
2020-12-30 12:02:13 +01:00
Sipke Schoorstra 993e08ea89
Refactored Switch Activity (#545)
* Add IfThen activity + sample

* Add match mode

* Rename IfThen to Switch
2020-12-29 16:40:21 +01:00
Sipke Schoorstra fa13aadd37 Serialization improvements and cleanup 2020-12-26 14:37:05 +01:00
Sipke Schoorstra 310cab9032
Elsa Activity + Workflow registration refactorings (#543)
* Elsa options and activity/workflow registration improvements

* Add convenience extensions for Quartz and Hangfire timer activity registration

* Fix solution and warnings
2020-12-26 12:21:08 +01:00
Rafael Carnucci 92e1a1c3bf
Redesign activities and workflows management (#536)
* Adding Activities, Workflows, TriggerProviders and WorkflowContextProviders by Reflection

* Activities stored in ElsaOptions, instead of IServiceCollection

* Remove the empty XML comments

* Renamed ElsaConfigurationsOptions to ElsaConfiguration

* Small enhancements

* Workflows stored in ElsaOptions, instead of IServiceCollection

* Instantiated workflows can now be added

* Workflow instance was not registered to DI

* Add Elsa.Activities.Rebus project to solution

Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
2020-12-25 21:17:17 +01:00
Sipke Schoorstra 8a4fae6f38 Fix Timer ExecuteAt persistence (for Trigger)
Without ExecuteAt receiving a value (even if it lies in the past), the TimerTriggerProvider will keep triggering workflows containing a Timer.
2020-12-24 21:36:42 +01:00
Sipke Schoorstra 28ac92b6ff
Introduce Workflow Instance Name (#538)
* Add Name property to Workflow Instance models and update Dashboard UI

* Add SetName activity

* Add naming workflow sample

* Add modal html

* Implement search by workflow instance name
2020-12-24 14:30:55 +01:00
Sipke Schoorstra b24ff99354 Fix build after merge 2020-12-23 12:50:34 +01:00
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
Sipke Schoorstra 8dbc3fe100
Workflow Execution Log (#530)
* Rename provider folder to locking

* Update project reference paths

* Incremental work on workflow execution log storage

* Fix deadlock

* Add workflow execution log stores
2020-12-21 17:08:32 +01:00
Sipke Schoorstra ee89331b91 Handle ServiceBusCommunicationException 2020-12-21 14:21:19 +01:00
Sipke Schoorstra 1542576c98 Decrease log level for MessageLockLostException 2020-12-21 13:55:13 +01:00
Sipke Schoorstra 913241732a Fix locking in MessageSenderFactory 2020-12-21 13:54:44 +01:00
Sipke Schoorstra f5f9c070ca Optimize timer activities to always execute when target time stamp lies in past 2020-12-20 20:22:03 +01:00
Sipke Schoorstra 8e7ade1ac4 Synchronize access to scheduler 2020-12-20 20:04:19 +01:00
Sipke Schoorstra 03c9f94671
Improve specifications and YesSQL implementation (#529)
* Update Fluid.Core package

* Make specifications flexible

* Update build environment

* Disable global.json
2020-12-20 12:12:32 +01:00
Sipke Schoorstra c047d66942 Update packages 2020-12-19 15:35:11 +01:00
Sipke Schoorstra d41039b567 Rename extensions namespace 2020-12-18 11:35:29 +01:00
Rafael Carnucci 8419424c98
Expand send mail (#522)
* Fix sample Elsa.Samples.FileBasedWorkflow

* Enhance SendMail

* Support for multiple receivers

Co-authored-by: Rafael Carnucci <rafael.carnucci@icn.de>
2020-12-16 11:47:02 +01:00
Rafael Carnucci 0ba56f51b4
Enhance project structure (#524)
* Fix sample Elsa.Samples.FileBasedWorkflow

* Centralize project properties

* Fix PackageLicenseExpression

* Added configureawait.props & FodyWeavers.xml & FodyWeavers.xsd.

* Remove icon.png and added PackageIconUrl

* Removed <Nullable>disable</Nullable>

* Fix Icon in Elsa.Activities.MassTransit and Rebuild

Co-authored-by: Rafael Carnucci <rafael.carnucci@icn.de>
2020-12-16 10:31:02 +01:00
Sipke Schoorstra 9dc7b691da Add Entity Changed blocking support + workflow context enhancements 2020-12-14 21:12:37 +01:00
Sipke Schoorstra 69c6fedc86 Rename Dto to Model and minor formatting 2020-12-14 20:03:40 +01:00
Rafael Carnucci b22a9f8f8c
Added EntityChanged Trigger (#512)
Co-authored-by: Rafael Carnucci <rafael.carnucci@icn.de>
2020-12-14 19:57:33 +01:00
Sipke Schoorstra d6cc7d7f56
Implement Specification pattern (#517)
* Add specifications

* Update persistence providers with specification pattern
2020-12-14 17:15:39 +01:00