Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 20:59
    sean-gilliam commented #3889
  • 20:59
    sean-gilliam opened #4001
  • 16:07
    spankr commented #3921
  • 15:55
    Aaronontheweb labeled #3765
  • 15:54
    Aaronontheweb labeled #3765
  • 15:54
    Aaronontheweb milestoned #3765
  • 15:53
    Aaronontheweb closed #3902
  • 15:23
    Aaronontheweb commented #3921
  • 15:11
    spankr commented #3921
  • 15:05
    Aaronontheweb commented #3973
  • 15:05
    Aaronontheweb commented #3973
  • 15:02
    Aaronontheweb commented #4000
  • 15:02
    Aaronontheweb milestoned #4000
  • 15:02
    Aaronontheweb assigned #4000
  • 15:01
    Aaronontheweb commented #3889
  • 14:55
    sean-gilliam commented #3889
  • 14:35
    IgorFedchenko commented #3973
  • 13:10
    zbynek001 opened #4000
  • 11:20
    IgorFedchenko commented #3973
  • 11:20
    IgorFedchenko commented #3973
verilocation
@verilocation
Also.. in the examples when addressing a clustered router we ask for the routees and check there are any before continuing... this seems like it could be a performance issue.. is this the recommended pre-check?
var routees = await this.GeocodeActor.Ask<Routees>(new GetRoutees());
if (routees.Members.Any()) { /* Do things */ }
Arjen Smits
@Danthar
@verilocation i think the webcrawler sample has something like that for communicating with the github api. (request throttling)
you might want to look there
verilocation
@verilocation
@Danthar Hey, thanks, I cant seem to find any mention of throttling or github within that project, any pointers as to where or what to look for?
Daniel D'Agostino
@dandago2_twitter
Creating a child actor via ActorOf() and Props is a bit of a pain since it takes params object[], which means technically you can pass anything, and you need to make sure you're passing in the right dependencies, or you'll have runtime issues. Is there a clean way to instantiate actors that guarantees compile-time safety?
Damian Reeves
@DamianReeves
I have a worker executable that I want to do work and shutdown: Is it a bad ID for that worker to join my cluster?
Garrard Kitchen
@garrardkitchen
Hi @corneliutusnea, were you ever able to form cluster with web app in Azure App Services? I've put the seed in a webjob to run continuously and deploy both webjob and web app in same place (deployed via vsts) and both are running but unfortunately they are not seeing each other. akka messages show no errors (thanks to @andreyleskov). I can see both are running on diff w3wp.exe's. I'm using localhost as hostname on both [webjob + web app] and diff ports.
Damian Reeves
@DamianReeves
How do I gracefully leave a cluster when my actor system is terminating?
Francis Paulin
@paulinfrancis

I need to send a largish object with remoting, and an Akka.Remote.OversizedPayloadException is thrown:

Akka.Remote.OversizedPayloadException: Discarding oversized payload sent to [akka.tcp://SimulatorSystem@127.0.0.1:20228/]: max allowed size 128000 bytes, actual size of encoded PPSim.ActorModel.Messages.DiagramLoadedMessage was 723509 bytes.

I've tried setting maximum-frame-size = 4000000b (arbitrary number substantially larger than my message) in both ends:

remote {
    helios.tcp {
        transport-class = ""Akka.Remote.Transport.Helios.HeliosTcpTransport, Akka.Remote""
        transport-protocol = tcp
        port = 0
        hostname = ""127.0.0.1""
        maximum-frame-size = 4000000b
    }
}
Are there other settings I need to set to enable larger messages?
Bartosz Sypytkowski
@Horusiath
@paulinfrancis sending 700MB message is definitely not a good idea
Francis Paulin
@paulinfrancis
Shouldn't that be 0.723MB?
Arjen Smits
@Danthar
@verilocation ah sorry, i was wrong its not in that project. I distinctly remember it being in some sample project. Let me check
Arjen Smits
@Danthar
@verilocation Cant seem to find what i was looking for. I thought the sample stuff in the bootcamp for communicating with github had some throttling. And it has, but its to basic.
However there are various way you can throttle with Akka. One pattern is described here: http://letitcrash.com/post/28901663062/throttling-messages-in-akka-2 its from the JVM version. but the same principle applies. And should be fairly easy to port to .net.
Alternative is to use the Akka.Streams API
that has throttling mechanisms as well
On a side note. The TimerBasedThrottler could be something that we could offer OOB under the patterns namespace
Akka streams has an throttle operator which you can use
So what you could do is have one actor act as the source of your stream definition, and the google geocode API as your sink
with message mapping and throttling in between
Check the docs: http://getakka.net/docs/streams/quickstart for a good starting point
Arjen Smits
@Danthar
If you have specific questions regarding Akka.Streams we have an AkkaStreams gitter chat full with capable ppl :)
Marc Piechura
@marcpiechura
@dandago2_twitter you can also use the factory func and call the constructor of the child actor directly
Damian Reeves
@DamianReeves
When a node leaves my cluster, the cluster continuously throws exceptions which are being logged... how can I stop that (I know I just not log remote lifecycle events, but that endless cycle of trying to connect to a node seems wasteful)
Bartosz Sypytkowski
@Horusiath
@paulinfrancis sorry, my mistake. maximum-frame-size should be enough
@DamianReeves maybe you can set auto downing of unreachable actors?
Francis Paulin
@paulinfrancis
Interesting! I noticed that my collections were null after changing to remoting. I tested a couple of different options, and discovered this:
public class TestMessage
{
    public TestMessage(string message, IEnumerable<string> collection)
    {
        Message = message;
        Collection = collection;
    }

    public string Message { get; } //OK
    public IEnumerable<string> Collection { get; } //null after remoting
}

public class TestMessage
{
    public TestMessage(string message, IEnumerable<string> collection)
    {
        Message = message;
        Collection = collection;
    }

    public string Message { get; private set; } //OK
    public IEnumerable<string> Collection { get; private set;  } //OK
}
Bartosz Sypytkowski
@Horusiath
@paulinfrancis check if you have referenced newtonsoft.json v8 or higher
Francis Paulin
@paulinfrancis
@Horusiath I was wrong too - something else was amiss with my configuration, and when I sorted it out then maximum-frame-size did the trick :)
Bartosz Sypytkowski
@Horusiath
versions below 8 had some problems with C# 7 readonly getters
Francis Paulin
@paulinfrancis
blob
This message was deleted
Bartosz Sypytkowski
@Horusiath
maybe it's time to send them an issue ;) beside that I would set Wire as a default serializer if I were you
Francis Paulin
@paulinfrancis
It's bed tome now, but I'll try and serialize/deserialize an object with a collection { get; } using json.net 9.0.1 tomorrow and see if I can repro
Bartosz Sypytkowski
@Horusiath
Wire is a lot faster and covers more scenarios
Francis Paulin
@paulinfrancis
I'll look into Wire - thanks a lot :)
Bartosz Sypytkowski
@Horusiath
np. see you later
Francis Paulin
@paulinfrancis
Great! I started with Akka this Monday, and it's been a fun and educational journey so far - especially because of the great community; you guys :)
Corneliu
@corneliutusnea
@garrardkitchen No, I didn't manage to get the cluster working on App Services. I talked to some MS guys and support and the app is running in a sandbox so you can't open server ports so you can't listen for incoming sockets. https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox
Best I can think we can do is get Akka to use WebSockets instead of Helios
but that's a slightly bigger job than I can take right now
Aaron Stannard
@Aaronontheweb
@corneliutusnea navigating Azure's managed services is a bit of a minefield
from that perspective
I feel your pain
Corneliu
@corneliutusnea
@Aaronontheweb yes, but the Azure App Services is great and scales and is minimal maintenance so I think it's really the future :) and that means for me I need a way to make it work
Aaron Stannard
@Aaronontheweb
makes sense to take ownership of as few things as possible