Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 14 21:02
    Aaronontheweb synchronize #3975
  • Oct 14 21:02
    Aaronontheweb opened #3975
  • Oct 14 20:11
    IgorFedchenko commented #3973
  • Oct 14 20:10
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 19:42
    IgorFedchenko edited #3973
  • Oct 14 18:08
    Aaronontheweb commented #3937
  • Oct 14 17:27
    Aaronontheweb commented #90
  • Oct 14 17:26
    Aaronontheweb commented #90
  • Oct 14 17:25
    Aaronontheweb assigned #90
  • Oct 14 17:16

    Aaronontheweb on dev

    Provide static GetRoutees.Insta… (compare)

  • Oct 14 17:16
    Aaronontheweb closed #3974
  • Oct 14 17:16
    Aaronontheweb milestoned #3974
  • Oct 14 16:05
    jackowild opened #90
  • Oct 14 15:08
    Aaronontheweb commented #3974
  • Oct 14 15:08
    Aaronontheweb commented #3974
  • Oct 13 14:40
    cptjazz synchronize #3974
  • Oct 13 14:07
    cptjazz opened #3974
  • Oct 13 08:30
    ismaelhamed commented #3937
Vagif Abilov
@object
I was thinking about your suggestion, @Horusiath, to use BidiFlow to arrange acknowledgement to Source. Are you sure this is the right pattern? My concerns are:
  1. In case of a long chain a positive acknowledgement (ack) will travel all the way back through several BidiFlows instead of going directly to the source.
  2. A negative acknowledgement (nack) in case of error can occur almost at any stage. Again, it will have to travel all the way back.
    An optimal graph would be the one where every flow is connected backwards to the source. But I am not sure how to build such a graph, also it has much more complex topology than BidiFlow.
Garrard Kitchen
@garrardkitchen
Has anybody had any success with Azure App Services? Context: We're porting a product to Azure. Hoping to deploy front-end to App Services and back-end to Azure Container Services (Docker) all within a VNET. So far I've wasted a few days getting nowhere with a PoC. Experiencing difficulty in obtaining private IP and getting this error: 'An address incompatible with the requested protocol was used'.
Andrey Leskov
@andreyleskov
@garrardkitchen welcome to the club ) try to change enforce-ip-family setting, more details here: https://github.com/akkadotnet/akka.net/releases/tag/v1.1.2
Garrard Kitchen
@garrardkitchen
Thanks @andreyleskov, I'll take it for a spin.
Garrard Kitchen
@garrardkitchen
@andreyleskov Same error. Have you managed to get akka with with App Services then?
Andrey Leskov
@andreyleskov
@garrardkitchen I'm using akka as part of WebApp
and using config like "hostname = localhost enforce-ip-family = true"
Garrard Kitchen
@garrardkitchen
Thanks for your help @andreyleskov, I had wrong configuration.
Bartosz Sypytkowski
@Horusiath
@object it's only a proposition ;) Sending ack/nack directly from sink to source would be probably faster, but you need to remember to bind those two
Vagif Abilov
@object
@Horusiath yes, it's faster but not nice looking :-)
But I guess I need to learn some Scala and inspect their stream-based queue actor implementation
Arsene T. Gandote
@Tochemey
Hello How can I use Paket to install Akka and Akka.Fsharp
Vagif Abilov
@object
@Tochemey there is nothing special about installing Akka and Akka.FSharp using Paket. You will need Paket.dependencies on the solution level and Paket.references for each project with list of Nuget packages. Read more about it in Paket documentation.
Wuttipat
@PlanCZero
Hi. I'm wondering how to check that all chaild actor has done their jobs? Please advise.
I'm using akka.net in c#
Peter Bergman
@peter-bannerflow
@PlanCZero I think it depends on what a job is to your application and when it is considered as done. But perhaps you could have the child report that work is done to its parent. Then the parent could keep track of this.
Bartosz Sypytkowski
@Horusiath
@PlanCZero you may want to take a look at the Aggregator pattern
Wuttipat
@PlanCZero
@peter-bannerflow @Horusiath Thank you for advise. I think Aggregator pattern is what I'm looking for but I'm not sure. I'm newby in akka.
I found some question on StackOverflow, but don't know how to write it in csharp.
Francis Paulin
@paulinfrancis

If I have a system that looks like this:

ASP .NET with lightweight actor system to talk with SignalR

  • Get remote IActorRef to Actor1 using ActorSelection

Windows Service to do the bulk of the work, and keep state

  • Actor 1, Tells Actor 2
    • Actor 2 tells Sender (Actor 1) when it has finished doing its thing
  • Actor 1 would now like Tell the actor in the ASP .NET app. What is the best way to get an IActorRef to Tell to? It seems strange to use ActorSelection in both ends, but that is maybe the only option?
Bartosz Sypytkowski
@Horusiath
@paulinfrancis
  • in general using actor selection is usually bad (as it's slower and you don't even know if selected actor is alive). It's better to retrieve IActorRef from actor selection by using either ResolveOne method or by sending Identify request to actor selection and await for ActorIdentity response.
  • depending on your needs you don't always need to call sender back. I've written a blog post, where I described how to make immediate response to initial caller.
  • if for some reason you need to send response to Actor 1 to continue processing, you can always "remember" original sender or carry it as part of the message (IActorRef can be serialized and deserialized within actor system boundaries)
Francis Paulin
@paulinfrancis
Thanks!
Francis Paulin
@paulinfrancis

Output from service
[INFO][13.10.2016 11:06:30][Thread 0001][remoting] Remoting now listens on addresses: [akka.tcp://SimulatorSystem@127.0.0.1:8091]
[DEBUG][13.10.2016 11:06:31][Thread 0008][akka://SimulatorSystem/user] now supervising akka://SimulatorSystem/user/Simulator

In the startup of my ASP .NET client actor system:
ActorReferences.Simulator = _actorSystem.ActorSelection("akka.tcp://SimulatorSystem@127.0.0.1:8091/user/Simulator")
.ResolveOne(TimeSpan.FromSeconds(3))
.Result;

Throws:
{"Exception occurred while resolving ActorSelection"}
InnerException: {"subject was null"}

Any quick ideas as to what I might be missing? I have installed Akka.Remote in both projects, and set up hocon to enable remoting in both too.

Bartosz Sypytkowski
@Horusiath
on which end does that exception occur?
Francis Paulin
@paulinfrancis
my ASP .NET client
_actorSystem.ActorSelection(...
Bartosz Sypytkowski
@Horusiath
did you set up this Simulator actor before sending ResolveOne request?
"subject was null" suggests that both ends (both actor systems) have connected successfully, but the one that received the identification request, couldn't find an actor under provided path
Francis Paulin
@paulinfrancis
yes, it's a topshelf service that I have started (as a console app, without installing the service, for simplicity), and I make sure I see the output indicates that the actor has successfully started before I launch the web app
Bartosz Sypytkowski
@Horusiath
@Aaronontheweb any ideas?
Francis Paulin
@paulinfrancis
It's probably worth mentioning that I'm using ASP .NET Core, but targeting 4.6.1. The project does have a web.config, and I was under the impression that it should be possible to use it for hocon, in parallel with the presence of project.json.
Bartosz Sypytkowski
@Horusiath
I know that akka.remote is not yet compatible with .net core
Francis Paulin
@paulinfrancis
Should it not be OK though, when using the full framework?
Bartosz Sypytkowski
@Horusiath
I don't know
Arsene T. Gandote
@Tochemey
Hello Guys can someone show how to define PreStart and PostStop in F# API
Damian Reeves
@DamianReeves
@paulinfrancis try loading your Hocon by another means... I believe in ASP.NET core web.config is only involved in IIS invocation not in application lifecycle
Vagif Abilov
@object
@Tochemey F# API doesn't have one-to-one match with C# API, actors in F# are functions, not types, so there are no such overrdes like PreStart and PostStop. If you need to execute some code before actor starts processing messages, just place it in the beginning of the function, prior to the recursive message handler function. And for PostStop you can use mailbox.Defer() and pass it a list of deferrables (disposables) that need to be executed when actor stops.
Francis Paulin
@paulinfrancis
@DamianReeves Great success!
var config = ConfigurationFactory.ParseString(@"
    akka {
        loglevel = DEBUG

        actor {
            provider = ""Akka.Remote.RemoteActorRefProvider, Akka.Remote""
            debug {
                receive = on
                autoreceive = on
                lifecycle = on
                event-stream = on
                unhandled = on
            }
        }

        remote {
            helios.tcp {
                transport-class = ""Akka.Remote.Transport.Helios.HeliosTcpTransport, Akka.Remote""
                transport-protocol = tcp
                port = 0
                hostname = ""127.0.0.1""
            }
        }
    }");

_actorSystem = ActorSystem.Create("SimulatorSystem", config);
I'll move the config to appsettings.json now, but good to see remoting works with ASP .NET Core targeting full framework :)
Damian Reeves
@DamianReeves
:thumbsup:
There's a part of me that really wants to build a Microsoft.Extensions.Configuration extension for HOCON. What is the status of HOCON outside of the Akka.NET repo, is https://github.com/akkadotnet/HOCON/commits/master still a thing being worked on?
Andrew Buttigieg
@andrewbuttigieg
in http://getakka.net/docs/clustering/cluster-client, how do I get a reference to ClusterReceptionist please?
ignore, you need to add Akka.Cluster.Tools via nuget.
verilocation
@verilocation
Quick question... I have a cluster which deploys geocode actors that will perform geocodes against Google. This is all great BUT google only lets us do 50requests a second. Is there any way I can communicate efficiently between the actors to figure out how many requests have been made per second and to throttle accordingly?
verilocation
@verilocation
Also.. is there an Akka.net equivalent of this? It'd be really nice to be able to see throughput and such
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)