Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 14:50
    Zetanova commented #5400
  • 13:54
    Aaronontheweb commented #5400
  • 13:53
    Aaronontheweb commented #5400
  • 13:52
    Aaronontheweb commented #5400
  • 13:10
    markusschaber commented #5400
  • 13:09
    markusschaber commented #5400
  • 12:21
    Zetanova commented #5400
  • 12:20
    Zetanova commented #5400
  • 09:42
    markusschaber commented #5400
  • 09:14
    markusschaber commented #5400
  • 00:48
    to11mtm commented #5389
  • 00:15
    to11mtm commented #5395
  • Nov 29 20:18
    Aaronontheweb commented #5400
  • Nov 29 20:03
    Zetanova commented #5400
  • Nov 29 17:50
    Aaronontheweb commented #5400
  • Nov 29 17:48
    markusschaber commented #5400
  • Nov 29 17:40
    markusschaber commented #5400
  • Nov 29 17:39
    markusschaber commented #5400
  • Nov 29 17:28
    Aaronontheweb commented #5400
  • Nov 29 17:26
    markusschaber commented #5400
Nick Polyderopoulos
@NickPolyder
Hello,
Is there somewhere a list with the currently available plugins for akka.net (For Example Persistence Plugins that were created by the community) ?
Aaron Stannard
@Aaronontheweb
@NickPolyder not in our docs
that'd be a good thing to add though
we do have AkkaNetContrib: https://github.com/akkanetcontrib
which has some
Nick Polyderopoulos
@NickPolyder
Yeap. It could at least have a list that are inside the core project. (For example i see that the core project has the Persistance for the SqlServer and Sqlite )
Havret
@Havret
How can I test PersistentFSM? Can I initialize it in specific state or feed it with specific evens as a part of my "arrange" test phase?
Lutando Ngqakaza
@Lutando

quick question

        // Parameters:
        //   handler:
        //     The message handler that is invoked for incoming messages of the specified type
        //     T. It should return trueif it handled/matched the message; false otherwise.

for

        protected void Receive<T>(Func<T, bool> handler);

if handler return false will the receive actor try to use another handler (down the list) if it matches the type?

Stijn Herreman
@stijnherreman
I'm about to attempt running Akka.NET in Azure Service Fabric, as a guest executable. Is it straightforward or will I run into some obstacles?
Arjen Smits
@Danthar
@stijnherreman if your not using remoting, should be straight forward.
Stijn Herreman
@stijnherreman
I am using remoting actually
still reading all the docs about service fabric, so haven't tried anything yet
nbparrell
@nbparrell
@marcpiechura Do you know what flavor of regex Akka.net is using?
Havret
@Havret
Is there any way to GoTo previous state in PersistentFSM?
Marc Piechura
@marcpiechura
@nbparrell not sure what you mean :)
nbparrell
@nbparrell
I figured it out. Was trying to use a negative backwards lookup and they are not supported by C# from what I have read. @marcpiechura
AndreSteenbergen
@AndreSteenbergen
I am trying to create a proxyactor, because I have a remote system with references I don't want in all my console apps. But I keep getting this error after the first message
, IWithUnboundedStash
An exception occurred while trying to apply plugin of type Akka.Actor.ActorStashPlugin to the newly created actor (Type = AnalyserService.Actors.Analyser
Cause: System.NotSupportedException: DequeBasedMailbox required, got: Mailbox
I am making the proxy actor like this:
public class ActorProxy : ReceiveActor
{
    public ActorProxy(string typeName, string actorName, params object[] constructorParameters)
    {
        var actorBaseType = typeof(ActorBase);
        var t = Type.GetType(typeName);

        if (!t.IsSubclassOf(actorBaseType))
        {
            Console.WriteLine($"{t} is not a subtype of actorbase");
            throw new ArgumentException("typeName");
        }

        //try and find an actor by type
        IActorRef targetActor = Context.ActorOf(Props.Create(() => (ActorBase)Activator.CreateInstance(t, constructorParameters)), actorName);

        Console.WriteLine(targetActor);
        ReceiveAny((msg) => {
            targetActor.Tell(msg, Sender);
        });
    }
}
All is well until I make the target actor IWithUnboundedStash
Any ideas?
Bartosz Sypytkowski
@Horusiath
@AndreSteenbergen did you configured a custom mailbox?
AndreSteenbergen
@AndreSteenbergen
no
that's the weird thing, or do I need to do that
AndreSteenbergen
@AndreSteenbergen
Thanks, just forced a mailbox using the withMailbox as parameter, works as a charm.

I do have 1 thing I don't know if it's a bug or something else, I occasionally see this error, after that the flow just stops ... I am using the example of the web crawler

[ERROR][11-4-2018 10:47:00][Thread 0018][akka://crawler/remote/akka.tcp/crawler@127.0.0.1:61662/user/api/XXXXXXX/coordinators/c1/StreamSupervisor-1/Flow-0-1-actorRefSource] The LinkedList is empty.
Cause: System.InvalidOperationException: The LinkedList is empty.
at System.Collections.Generic.LinkedList1.RemoveLast() at Akka.Streams.Implementation.ActorRefSourceActor1.ReceiveElement(T message)
at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message)
at Akka.Actor.ActorCell.ReceiveMessage(Object message)
at Akka.Actor.ActorCell.Invoke(Envelope envelope)

I can't seem to pinpoint the problem. And I don't know is it's a bug in my code or akka.net. I did tweak the numbers a bit, to not let websites crash. The code example really is a crawler of doom ;)
AndreSteenbergen
@AndreSteenbergen
250 per minute with 2 maxconcurrent.
        var htmlFlow = Flow.Create<PageToCrawl>()
            .Throttle(job.Config.ThottleAmount, job.Config.PerTimeUnit, job.Config.ThottleAmount, ThrottleMode.Shaping)
            .Via(DownloadFlow.ProcessHtmlDownloadFor(MaxConcurrentDownloads, job, pageRequester));
AndreSteenbergen
@AndreSteenbergen
When that happens the entire actor won't receive anything anymore
or the stream at least
AndreSteenbergen
@AndreSteenbergen
I have a near infinite buffer: var source = Source.ActorRef<PageToCrawl>(int.MaxValue, OverflowStrategy.DropTail);
AndreSteenbergen
@AndreSteenbergen
I did find RemoveLast is called by DropTail, but I know for sure I have not reached int.MaxValue items in the buffer.
Marc Piechura
@marcpiechura
@AndreSteenbergen could you try to reproduce it in a simpler example?
AndreSteenbergen
@AndreSteenbergen
I tried ....
It isn't actually that hard, it's also doesn't happen evry time
30% of the time I have a crawl of about 600 pages
I have also tried debug messages, but the actors are quite chatty in debug mode. Can't seem to find any useful data
AndreSteenbergen
@AndreSteenbergen
Or can it be as simple of choosing a smaller buffer e.g. 2048 * 2048? 4 million in that queue is quite a lot I guess ...
AndreSteenbergen
@AndreSteenbergen
I have test run my crawl 5 times now, still no issue ... Could Buffer.IsFull be a bit problematic with queues of size int.MaxValue?
Marc Piechura
@marcpiechura
Not sure, I don’t know how the web crawler example looks like, maybe @Aaronontheweb knows more
Joshua Garnett
@joshgarnett
Are there any known performance issues I should watch out for when running a debug vs a release build? We are seeing significant performance hits on debug builds, more then I would have expected.
Aaron Stannard
@Aaronontheweb
@AndreSteenbergen I've had the WebCrawler sample, as it currently stands, process 20GB+ of pages before
didn't have any issues really
@joshgarnett other than the usual stuff in the CLR that we don't control, none that I am aware
the Akka.NET binaries we ship on NuGet don't have any conditional code that checks for the presence of an attached debugger or anything
Joshua Garnett
@joshgarnett
hmm I might have some profiling in my future, now to find a profiler that works well on OSX for .net core
Aaron Stannard
@Aaronontheweb
I assume you're not using a local build of Akka.NET or anything, right?
Joshua Garnett
@joshgarnett
Akka.Persistence.MySQL is being built locally