Skip to content

Commit 1fb76e4

Browse files
Fix event consumer on documentdb
1 parent d7045a5 commit 1fb76e4

File tree

9 files changed

+57
-51
lines changed

9 files changed

+57
-51
lines changed

backend/global.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"sdk": {
3+
"version": "8.0.416"
4+
}
5+
}

backend/src/Squidex.Data.EntityFramework/Squidex.Data.EntityFramework.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@
4040
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.Json.Microsoft" Version="8.0.3" />
4141
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql.NetTopologySuite" Version="8.0.3" />
4242
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
43-
<PackageReference Include="Squidex.AI.EntityFramework" Version="7.33.0" />
44-
<PackageReference Include="Squidex.Assets.EntityFramework" Version="7.33.0" />
45-
<PackageReference Include="Squidex.Assets.TusAdapter" Version="7.33.0" />
46-
<PackageReference Include="Squidex.Events.EntityFramework" Version="7.33.0" />
47-
<PackageReference Include="Squidex.Flows.EntityFramework" Version="7.33.0" />
48-
<PackageReference Include="Squidex.Hosting" Version="7.33.0" />
49-
<PackageReference Include="Squidex.Messaging.EntityFramework" Version="7.33.0" />
43+
<PackageReference Include="Squidex.AI.EntityFramework" Version="7.34.0" />
44+
<PackageReference Include="Squidex.Assets.EntityFramework" Version="7.34.0" />
45+
<PackageReference Include="Squidex.Assets.TusAdapter" Version="7.34.0" />
46+
<PackageReference Include="Squidex.Events.EntityFramework" Version="7.34.0" />
47+
<PackageReference Include="Squidex.Flows.EntityFramework" Version="7.34.0" />
48+
<PackageReference Include="Squidex.Hosting" Version="7.34.0" />
49+
<PackageReference Include="Squidex.Messaging.EntityFramework" Version="7.34.0" />
5050
<PackageReference Include="Squidex.OpenIdDict.EntityFramework" Version="5.8.4" />
5151
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
5252
<PackageReference Include="System.ValueTuple" Version="4.5.0" />

backend/src/Squidex.Data.MongoDb/Squidex.Data.MongoDb.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
<PackageReference Include="MongoDB.Driver.GridFS" Version="2.30.0" />
2626
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.3.0" />
2727
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
28-
<PackageReference Include="Squidex.AI.Mongo" Version="7.33.0" />
29-
<PackageReference Include="Squidex.Assets.Mongo" Version="7.33.0" />
30-
<PackageReference Include="Squidex.Events.Mongo" Version="7.33.0" />
31-
<PackageReference Include="Squidex.Flows.Mongo" Version="7.33.0" />
32-
<PackageReference Include="Squidex.Hosting" Version="7.33.0" />
33-
<PackageReference Include="Squidex.Messaging.Mongo" Version="7.33.0" />
28+
<PackageReference Include="Squidex.AI.Mongo" Version="7.34.0" />
29+
<PackageReference Include="Squidex.Assets.Mongo" Version="7.34.0" />
30+
<PackageReference Include="Squidex.Events.Mongo" Version="7.34.0" />
31+
<PackageReference Include="Squidex.Flows.Mongo" Version="7.34.0" />
32+
<PackageReference Include="Squidex.Hosting" Version="7.34.0" />
33+
<PackageReference Include="Squidex.Messaging.Mongo" Version="7.34.0" />
3434
<PackageReference Include="Squidex.OpenIddict.MongoDb" Version="5.8.5" />
3535
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
3636
<PackageReference Include="System.ValueTuple" Version="4.5.0" />

backend/src/Squidex.Domain.Apps.Core.Model/Squidex.Domain.Apps.Core.Model.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<PackageReference Include="NetTopologySuite" Version="2.5.0" />
2121
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.3.0" />
2222
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
23-
<PackageReference Include="Squidex.Flows" Version="7.33.0" />
23+
<PackageReference Include="Squidex.Flows" Version="7.34.0" />
2424
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
2525
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
2626
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />

backend/src/Squidex.Domain.Apps.Core.Operations/Squidex.Domain.Apps.Core.Operations.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
<PackageReference Include="NJsonSchema" Version="11.0.2" />
3030
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.3.0" />
3131
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
32-
<PackageReference Include="Squidex.AI" Version="7.33.0" />
33-
<PackageReference Include="Squidex.Messaging.Subscriptions" Version="7.33.0" />
32+
<PackageReference Include="Squidex.AI" Version="7.34.0" />
33+
<PackageReference Include="Squidex.Messaging.Subscriptions" Version="7.34.0" />
3434
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
3535
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
3636
<PackageReference Include="System.Linq.Async" Version="6.0.1" />

backend/src/Squidex.Infrastructure/EventSourcing/Consume/EventConsumerProcessor.cs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ public class EventConsumerProcessor : IEventSubscriber<ParsedEvents>
2121
private readonly IEventStore eventStore;
2222
private readonly ILogger<EventConsumerProcessor> log;
2323
private readonly AsyncLock asyncLock = new AsyncLock();
24+
private readonly RetryWindow logWindow = new RetryWindow(TimeSpan.FromSeconds(10), 0);
2425
private IEventSubscription? currentSubscription;
2526

2627
public EventConsumerState State
@@ -73,37 +74,40 @@ public virtual async Task CompleteAsync()
7374
}
7475
}
7576

76-
public virtual async ValueTask OnNextAsync(IEventSubscription subscription, ParsedEvents @event)
77+
public virtual ValueTask OnNextAsync(IEventSubscription subscription, ParsedEvents @event)
7778
{
78-
await UpdateAsync(async () =>
79+
return UpdateAsync(async () =>
7980
{
8081
if (!ReferenceEquals(subscription, currentSubscription))
8182
{
8283
return;
8384
}
8485

8586
await DispatchAsync(@event.Events);
86-
8787
State = State.Handled(@event.Position, @event.Events.Count);
8888
}, State.Position);
8989
}
9090

91-
public virtual async ValueTask OnErrorAsync(IEventSubscription subscription, Exception exception)
91+
public virtual ValueTask OnErrorAsync(IEventSubscription subscription, Exception exception)
9292
{
93-
await UpdateAsync(() =>
93+
return UpdateAsync(() =>
9494
{
9595
if (!ReferenceEquals(subscription, currentSubscription))
9696
{
9797
return;
9898
}
9999

100100
Unsubscribe();
101-
102101
State = State.Stopped(exception);
102+
103+
if (logWindow.CanRetryAfterFailure())
104+
{
105+
log.LogError(exception, "Failed to handle event.");
106+
}
103107
}, State.Position);
104108
}
105109

106-
public virtual Task ActivateAsync()
110+
public virtual ValueTask ActivateAsync()
107111
{
108112
return UpdateAsync(() =>
109113
{
@@ -120,7 +124,7 @@ public virtual Task ActivateAsync()
120124
}, State.Position);
121125
}
122126

123-
public virtual Task StartAsync()
127+
public virtual ValueTask StartAsync()
124128
{
125129
return UpdateAsync(() =>
126130
{
@@ -130,12 +134,11 @@ public virtual Task StartAsync()
130134
}
131135

132136
Subscribe();
133-
134137
State = State.Started();
135138
}, State.Position);
136139
}
137140

138-
public virtual Task StopAsync()
141+
public virtual ValueTask StopAsync()
139142
{
140143
return UpdateAsync(() =>
141144
{
@@ -145,7 +148,6 @@ public virtual Task StopAsync()
145148
}
146149

147150
Unsubscribe();
148-
149151
State = State.Stopped();
150152
}, State.Position);
151153
}
@@ -164,7 +166,6 @@ await UpdateAsync(async () =>
164166
await ClearAsync();
165167

166168
State = EventConsumerState.Initial;
167-
168169
Subscribe();
169170
}, State.Position);
170171
}
@@ -177,7 +178,7 @@ private async Task DispatchAsync(IReadOnlyList<Envelope<IEvent>> events)
177178
}
178179
}
179180

180-
private Task UpdateAsync(Action action, string? position, [CallerMemberName] string? caller = null)
181+
private ValueTask UpdateAsync(Action action, string? position, [CallerMemberName] string? caller = null)
181182
{
182183
return UpdateAsync(() =>
183184
{
@@ -187,7 +188,7 @@ private Task UpdateAsync(Action action, string? position, [CallerMemberName] str
187188
}, position, caller);
188189
}
189190

190-
private async Task UpdateAsync(Func<Task> action, string? position, [CallerMemberName] string? caller = null)
191+
private async ValueTask UpdateAsync(Func<Task> action, string? position, [CallerMemberName] string? caller = null)
191192
{
192193
// We do not want to deal with concurrency in this class, therefore we just use a lock.
193194
using (await asyncLock.EnterAsync())

backend/src/Squidex.Infrastructure/Squidex.Infrastructure.csproj

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@
2424
<PackageReference Include="NodaTime" Version="3.2.0" />
2525
<PackageReference Include="OpenTelemetry.Api" Version="1.9.0" />
2626
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
27-
<PackageReference Include="Squidex.Assets" Version="7.33.0" />
28-
<PackageReference Include="Squidex.Caching" Version="7.33.0" />
29-
<PackageReference Include="Squidex.Events" Version="7.33.0" />
30-
<PackageReference Include="Squidex.Hosting.Abstractions" Version="7.33.0" />
31-
<PackageReference Include="Squidex.Log" Version="7.33.0" />
32-
<PackageReference Include="Squidex.Messaging" Version="7.33.0" />
33-
<PackageReference Include="Squidex.Text" Version="7.33.0" />
27+
<PackageReference Include="Squidex.Assets" Version="7.34.0" />
28+
<PackageReference Include="Squidex.Caching" Version="7.34.0" />
29+
<PackageReference Include="Squidex.Events" Version="7.34.0" />
30+
<PackageReference Include="Squidex.Hosting.Abstractions" Version="7.34.0" />
31+
<PackageReference Include="Squidex.Log" Version="7.34.0" />
32+
<PackageReference Include="Squidex.Messaging" Version="7.34.0" />
33+
<PackageReference Include="Squidex.Text" Version="7.34.0" />
3434
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
3535
<PackageReference Include="System.Collections.Immutable" Version="8.0.0" />
3636
<PackageReference Include="System.ComponentModel.Annotations" Version="5.0.0" />

backend/src/Squidex/Squidex.csproj

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,17 +60,17 @@
6060
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.9.0" />
6161
<PackageReference Include="RefactoringEssentials" Version="5.6.0" PrivateAssets="all" />
6262
<PackageReference Include="ReportGenerator" Version="5.4.1" PrivateAssets="all" />
63-
<PackageReference Include="Squidex.Assets.Azure" Version="7.33.0" />
64-
<PackageReference Include="Squidex.Assets.GoogleCloud" Version="7.33.0" />
65-
<PackageReference Include="Squidex.Assets.FTP" Version="7.33.0" />
66-
<PackageReference Include="Squidex.Assets.ImageSharp" Version="7.33.0" />
67-
<PackageReference Include="Squidex.Assets.S3" Version="7.33.0" />
68-
<PackageReference Include="Squidex.Assets.TusAdapter" Version="7.33.0" />
63+
<PackageReference Include="Squidex.Assets.Azure" Version="7.34.0" />
64+
<PackageReference Include="Squidex.Assets.GoogleCloud" Version="7.34.0" />
65+
<PackageReference Include="Squidex.Assets.FTP" Version="7.34.0" />
66+
<PackageReference Include="Squidex.Assets.ImageSharp" Version="7.34.0" />
67+
<PackageReference Include="Squidex.Assets.S3" Version="7.34.0" />
68+
<PackageReference Include="Squidex.Assets.TusAdapter" Version="7.34.0" />
6969
<PackageReference Include="Squidex.ClientLibrary" Version="21.8.0" />
70-
<PackageReference Include="Squidex.Events.GetEventStore" Version="7.33.0" />
71-
<PackageReference Include="Squidex.Hosting" Version="7.33.0" />
72-
<PackageReference Include="Squidex.Messaging.All" Version="7.33.0" />
73-
<PackageReference Include="Squidex.Messaging.Subscriptions" Version="7.33.0" />
70+
<PackageReference Include="Squidex.Events.GetEventStore" Version="7.34.0" />
71+
<PackageReference Include="Squidex.Hosting" Version="7.34.0" />
72+
<PackageReference Include="Squidex.Messaging.All" Version="7.34.0" />
73+
<PackageReference Include="Squidex.Messaging.Subscriptions" Version="7.34.0" />
7474
<PackageReference Include="StyleCop.Analyzers" Version="1.1.118" PrivateAssets="all" />
7575
<PackageReference Include="YDotNet" Version="0.4.3" />
7676
<PackageReference Include="YDotNet.Native" Version="0.4.3" />
@@ -84,11 +84,11 @@
8484
</ItemGroup>
8585

8686
<ItemGroup Condition="'$(IncludeMagick)' == 'true'">
87-
<PackageReference Include="Squidex.Assets.ImageMagick" Version="7.33.0" />
87+
<PackageReference Include="Squidex.Assets.ImageMagick" Version="7.34.0" />
8888
</ItemGroup>
8989

9090
<ItemGroup Condition="'$(IncludeKafka)' == 'true'">
91-
<PackageReference Include="Squidex.Messaging.Kafka" Version="7.33.0" />
91+
<PackageReference Include="Squidex.Messaging.Kafka" Version="7.34.0" />
9292
</ItemGroup>
9393

9494
<PropertyGroup>

frontend/src/app/shared/state/asset-scripts.state.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,10 @@ export class AssetScriptsState extends State<Snapshot> {
9999
}
100100

101101
private replaceAssetScripts(payload: AssetScriptsDto, version: VersionTag) {
102-
const { canUpdate, _links: _, version: __, ...scripts } = payload.toJSON();
102+
const { _links: _, version: __, ...scripts } = payload.toJSON();
103103

104104
this.next({
105-
canUpdate,
105+
canUpdate: payload.canUpdate,
106106
scripts,
107107
isLoaded: true,
108108
isLoading: false,

0 commit comments

Comments
 (0)