dependabot[bot] on nuget
Bump BenchmarkDotNet from 0.13.… (compare)
dependabot[bot] on nuget
Bump Microsoft.Extensions.Hosti… (compare)
dependabot[bot] on nuget
Bump MicrosoftLibVersion from 5… (compare)
dependabot[bot] on nuget
Bump System.Configuration.Confi… (compare)
dependabot[bot] on nuget
Bump Microsoft.Extensions.Hosti… (compare)
dependabot[bot] on nuget
Bump LightningDB from 0.14.1 to… (compare)
PreStart
override. Should I not be disposing it when the actor is terminated? I'm expecting to have to do something like myQueueStream.Dispose()
in my Actor's PostStop
override?
.WithShardRegion<ProductMarker>(...)
? Why not just register it with the specific actor type (as opposed to ProductMarker
), like so: .WithShardRegion<ProductTotalsActor>()...
. I don't understand the benefit that ProductMarker
provides? Would my Actor System be worse-off if I registered it with .WithShardRegion<ProductTotalsActor>
instead?
I have an actor configured to consume an Azure Storage Queue Stream like so:
protected override void PreStart()
{
QueueSource.Create(Queue)
.RunWith(Sink.ActorRef<QueueMessage>(Self, Done.Instance), Context.Materializer());
}
But I'm finding that the same message on the storage queue keeps being returned over and over again. Is there something I should be doing to cause a message to be removed from the Storage Queue?
var transaction = Elastic.Apm.Agent.Tracer.StartTransaction("AuditNotificationActor.<StartIndexStreamMessage>", ApiConstants.TypeRequest);
try
{
if (_queue == null)
{
ActorMaterializer materializer = AuditSystemActors.Materializer;
var queueSink = Sink.Queue<IEnumerable<ESDocument>>();
var batchSink = Source.Queue<ESDocument>(100000, OverflowStrategy.Backpressure);
var flow = Flow.Create<ESDocument>().GroupedWithin(5000, TimeSpan.FromSeconds(120)).Select(s =>
{
AuditSystemActors.AuditNotificationRouter.Tell(s);
return s;
});
_queue = batchSink.Via(flow).RecoverWithRetries(attempts: 1, partialFunc: exception =>
{
Elastic.Apm.Agent.Tracer.CurrentTransaction?.CaptureException(exception);
return null;
}).To(queueSink).Run(materializer);
await _queue.WatchCompletionAsync();
}
}
catch (Exception ex)
{
Elastic.Apm.Agent.Tracer.CurrentTransaction?.CaptureException(ex);
}
finally
{
transaction?.End();
}
.WithCustomSerializer("hyperion", new List<Type>() { typeof(System.Object) }, system => new HyperionSerializer(system, HyperionSerializerSettings.Default))
context.GetLogger().Info(context.System.Serialization.FindSerializerForType(typeof(Object)).ToString());
hyperion is the result, however it is not listed anywhere when printing the configuration during startup.