Skip to content
Closed

V 2 #1134

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
5cc1b3e
Commit with unit tests and separate Newtonsoft package
KyleUmazi Apr 16, 2023
2c5550e
Remove test data
KyleUmazi Apr 16, 2023
a0e72b0
Upgraded packages
KyleUmazi May 7, 2023
48bcd73
Merge pull request #1 from kyle-bradley/feature/package-upgrade
kyle-bradley May 7, 2023
9714dc4
Merge pull request #2 from kyle-bradley/feature/concurrent-rebuild
kyle-bradley May 13, 2023
d405021
Added an enforced create and delete strategy to remove repetitive val…
KyleUmazi May 28, 2023
1b6e2cb
Merge
KyleUmazi May 28, 2023
e8b9dfc
Fixed build
KyleUmazi May 28, 2023
41c3d0b
Merge
KyleUmazi May 29, 2023
ebed669
Merge pull request #4 from kyle-bradley/feature/merge-create-delete
kyle-bradley May 29, 2023
a6125b1
Migrate RabbitMq to new project
KyleUmazi Jun 3, 2023
ffa78e3
Revert "Migrate RabbitMq to new project"
KyleUmazi Jun 5, 2023
95e0d4b
Fixed merge
KyleUmazi Jun 5, 2023
d27a64a
Merge pull request #5 from kyle-bradley/feature/merge-rabbitmq
kyle-bradley Jun 5, 2023
729c483
Feature/eventflow updates (#6)
kyle-bradley Jun 10, 2023
51d6e83
Feature/re merge (#7)
kyle-bradley Sep 26, 2023
9b682cf
Fixed upgrade issues (#8)
kyle-bradley Sep 26, 2023
76e1706
Create timeout for jobs (#11)
kyle-bradley Dec 7, 2023
f7ca0e8
Upgrade to supprot latest .NET versions (#12)
kyle-bradley Jan 19, 2024
4ba2e19
Fixed edge case rebuilding cases (#13)
kyle-bradley Jun 29, 2024
9cb8763
Removed unecessary forced loop exit
kyle-bradley Jun 29, 2024
0469b83
Synced with latest EventFlow commits 29-06-2024 (#14)
kyle-bradley Jun 29, 2024
07ee0b4
Common value objects that allow for integrated tests (#15)
kyle-bradley Jun 30, 2024
291eb34
Update README.md
kyle-bradley Jun 30, 2024
6a7f75b
Fixed tests (#16)
kyle-bradley Oct 10, 2024
fc4f693
Add support for EntityFramework (#17)
kyle-bradley Oct 16, 2024
c39c0bc
Improve populator functions with tiers (#18)
kyle-bradley Nov 10, 2024
893944e
Fluent Validation Support (#19)
kyle-bradley Nov 12, 2024
2501ba9
General improvements (#20)
kyle-bradley Dec 17, 2024
dbbbc0c
Read store caching strategy (#21)
kyle-bradley Dec 19, 2024
1c23acc
Pusg
kyle-bradley Oct 26, 2025
bb77749
Fix
kyle-bradley Oct 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,20 @@ jobs:
- uses: actions/checkout@v3

- name: Setup .NET
uses: actions/setup-dotnet@v3
uses: actions/setup-dotnet@v4
with:
dotnet-version:
3.1.x
6.0.x
8.0.x

# Yes, EventFlow has a custom built build tool. If you are reading this
# you might have a better idea of how to do it alternatively, if so,
# create a PR for EventFlow.

# https://github.com/rasmus/Bake
- name: Install Bake
run: dotnet tool install -g --version 0.20.33-beta Bake
run: dotnet tool install -g --version 0.23.36-beta Bake

- name: Run Bake
run: |
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
uses: actions/checkout@v3

- name: Setup .NET
uses: actions/setup-dotnet@v3
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
2.1.x
Expand All @@ -37,12 +37,12 @@ jobs:

# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}

- name: Autobuild
uses: github/codeql-action/autobuild@v2
uses: github/codeql-action/autobuild@v3

# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
Expand All @@ -56,4 +56,4 @@ jobs:
# make release

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
uses: github/codeql-action/analyze@v3
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
contents: write
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
- uses: actions/setup-python@v5
with:
python-version: 3.x

Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ on:
jobs:
build:
runs-on: ubuntu-20.04

environment:
name: release

env:
HELPZ_POSTGRESQL_PASS: Password12!
EVENTFLOW_MSSQL_SERVER: 127.0.0.1,1433
Expand Down Expand Up @@ -63,19 +67,20 @@ jobs:
- uses: actions/checkout@v3

- name: Setup .NET
uses: actions/setup-dotnet@v3
uses: actions/setup-dotnet@v4
with:
dotnet-version:
3.1.x
6.0.x
8.0.x

# Yes, EventFlow has a custom built build tool. If you are reading this
# you might have a better idea of how to do it alternatively, if so,
# create a PR for EventFlow.

# https://github.com/rasmus/Bake
- name: Install Bake
run: dotnet tool install -g --version 0.20.33-beta Bake
run: dotnet tool install -g --version 0.23.36-beta Bake

- name: Run Bake
run: |
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,4 +77,5 @@ jobs:
stale-pr-label: stale
stale-issue-label: stale
exempt-pr-labels: stale-exempt
exempt-issue-labels: stale-exempt
operations-per-run: 1000
34 changes: 19 additions & 15 deletions Documentation/basics/jobs.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ parent: Basics
nav_order: 2
---

.. _jobs:
.. \_jobs:

# Jobs

Expand All @@ -16,8 +16,8 @@ provides basic functionality for jobs.
There are areas where you might find jobs very useful, here are some
examples

- Publish a command at a specific time in the future
- Transient error handling
- Publish a command at a specific time in the future
- Transient error handling

```csharp
var jobScheduler = resolver.Resolve<IJobScheduler>();
Expand All @@ -33,17 +33,16 @@ In the above example the `SendEmailCommand` command will be published
in seven days.

!!! attention
When working with jobs, you should be aware of the following
When working with jobs, you should be aware of the following

- The default implementation does executes the job *now* (completely ignoring `runAt`/`delay` parameters) and in the
current context. To get support for scheduled jobs, inject another implementation of `IJobScheduler`,
current context. To get support for scheduled jobs, inject another implementation of `IJobScheduler`,
e.g. by installing ``EventFlow.Hangfire`` (Read below for details).
- Your jobs should serialize to JSON properly, see the section on
`value objects <./ValueObjects.md>`__ for more information
- If you use the provided ``PublishCommandJob``, make sure that your
commands serialize properly as well


## Create your own jobs

To create your own jobs, your job merely needs to implement the `IJob`
Expand Down Expand Up @@ -77,7 +76,7 @@ version to EventFlow and this is how EventFlow distinguishes between the
different job types. This makes it possible for you to reorder your
code, even rename the job type. As long as you keep the same attribute
values it is considered the same job in EventFlow. If the attribute is
omitted, the name will be the type name and version will be ``1``.
omitted, the name will be the type name and version will be `1`.

Here's how the job is registered in EventFlow.

Expand All @@ -102,17 +101,22 @@ await jobScheduler.ScheduleAsync(

## Hangfire

To use `Hangfire <http://hangfire.io/>`__ as the job scheduler, install
the NuGet package ``EventFlow.Hangfire`` and configure EventFlow to use
To use `Hangfire <http://hangfire.io/>`\_\_ as the job scheduler, install
the NuGet package `EventFlow.Hangfire` and configure EventFlow to use
the scheduler like this.

hangfire supports several different storage solutions including Microsoft SQL Server and MongoDB. Use only inMemoryStorage for testing and development.

```csharp
var resolver = EventFlowOptions.new
.UseHangfireJobScheduler() // This line
...
.CreateResolver();
private void RegisterHangfire(IEventFlowOptions eventFlowOptions)
{
eventFlowOptions.ServiceCollection
.AddHangfire(c => c.UseInMemoryStorage())
.AddHangfireServer();
eventFlowOptions.UseHangfireJobScheduler();
}
```

!!! note
The `UseHangfireJobScheduler()` doesn't do any Hangfire
configuration, but merely registers the proper scheduler in EventFlow.
The `UseHangfireJobScheduler()` doesn't do any Hangfire
configuration, but merely registers the proper scheduler in EventFlow.
Loading