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
Ryan Davis
@rdavisau
:clap: !
Roger Johansson
@rogeralsing
:+1: I'd like to see that in the core repo, make a PR if you want
Suhas Chatekar
@schatekar
@GraemeBradbury Could you add an example to run a specific spec? I could never got that right
+1 for adding it in the core repo
Graeme Bradbury
@GraemeBradbury
@schatekar I haven't figured out how to run a specific spec yet. I think that'll need runner modification.
Suhas Chatekar
@schatekar
ok, I might take a look at that over the weekend then
when you ported a spec from scala, did you run all the specs to check whether newly ported spec works or not?
Graeme Bradbury
@GraemeBradbury
yeah i would run just the dll
It's ok at the moment since there are only 3 specs but it'll get irritating fast as more are added.
Roger Johansson
@rogeralsing
@cpx if you get bored, there are some new tasks added to the Wire repo :D
tstojecki
@tstojecki
how do you go about troubleshooting a persistence plugin, i have wired up an eventstore in hocon, but i get nothing, no errors, no data...
akka {
        loglevel = INFO,
        loggers = [
          "Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog"
        ],
    persistence {
          eventstore-server {
            host = "127.0.0.1"
            tcp-port = 2113

            connection-factory = "Akka.Persistence.EventStore.DefaultConnectionFactory, Akka.Persistence.EventStore"
          }

          journal {
            eventstore {
              # qualified type name of the EventStore persistence journal actor
              class = "Akka.Persistence.EventStore.Journal.EventStoreJournal, Akka.Persistence.EventStore"

              # dispatcher used to drive journal actor
              plugin-dispatcher = "akka.actor.default-dispatcher"

              deserializer = "Akka.Persistence.EventStore.DefaultDeserializer, Akka.Persistence.EventStore"
            }
          }
    }
      }
i can see under ActorSystem.Settings.Config that the hocon settings are being picked up
is there a place where i can see what persistence plugins have been registered?
Suhas Chatekar
@schatekar
@GraemeBradbury isn't that what the -Dmultinode.test-spec switch is supposed to do?
Graeme Bradbury
@GraemeBradbury
@schatekar possibly, i hadn't noticed it. :-)
But it has given me an idea let me get back to you in a bit.
Suhas Chatekar
@schatekar
I have tried that switch, it expects fully qualified name of the spec. I entered different variations but none worked
foo bar code
@lepinay
trying to create a TraceLogger for akka, so far I've updated my config with: loggers = ["AkkaExtensions.TraceLogger, AkkaExtensions"], referenced the assembly where needed but I still get an Akka.Configuration.ConfigurationException: Logger [AkkaExtensions.TraceLogger, AkkaExtensions] specified in config cannot be loaded: System.ArgumentException: Unknown actor producer [AkkaExtensions.TraceLogger]...is there any additional step ?
Graeme Bradbury
@GraemeBradbury
okay so I now understand Fake a smidgen better.
build multinodetests spec-assembly=remote
what's the opinion on the commanline arg spec-assembly?
obvious enough that it's a filter?
Suhas Chatekar
@schatekar
this runs the tests and not builds them?
Graeme Bradbury
@GraemeBradbury
yeah
foo bar code
@lepinay
ok, works if custom logger inherits from ReceiveActor, I think the doc online should explain this because the error message isn't clear...it sounds like akka can't find the type/assembly but it's actually that the type is there but doesn't inherit receiveactor or any proper base type that should be there for a custom logger
Suhas Chatekar
@schatekar
@GraemeBradbury not sure if you would like to say build in the beginning in that case
Graeme Bradbury
@GraemeBradbury
@schatekar currently build multinodetests runs all the tests.
it also has the option build multinodetests spec=blah to supply the -Dmultinode.test-spec bit
Suhas Chatekar
@schatekar
ok, I thought you are talking about the new command line you have built
Graeme Bradbury
@GraemeBradbury
by pointing out -Dmultinode.test-spec you brought some Fake stuff to my attention, which means that my script becomes unneeded.
i can just extend the fake script.
Suhas Chatekar
@schatekar
right
Graeme Bradbury
@GraemeBradbury
ok created a pull request #1265 to extend the fake script.
Bartosz Sypytkowski
@Horusiath
@tstojecki I think, that you registered an event store journal, but you a) didn't specified, that it should be used for a particular persistent actor 2) didn't set it as a default journal
  1. you must override JournalPluginId of the persistent actor to point to journal section in Hocon config like akka.persistence.journal.eventstore
  2. to set journal implementation as default one, you need to add section akka.persistence.journal.plugin = akka.persistence.journal.eventstore
Bartosz Sypytkowski
@Horusiath
and if you want to directly access journal actor, use Persistence.Instance.Apply(system).JournalFor(string.Empty) - string empty will return actor ref for default journal, while i.e. akka.persistence.journal.eventstore will return one you defined as event store
tstojecki
@tstojecki
thanks @Horusiath , you're right, I did none of those
so do i need switch my actors to inherit from PersistentActor rather than ReceiveActor?
This message was deleted
tstojecki
@tstojecki
also, when you say to add a section, to set as a default, you mean to add it to hocon, correct?
journal {
            plugin = "akka.persistence.journal.eventstore"
Suhas Chatekar
@schatekar
I am trying to understand what the following piece of scala code does
val replies: Map[Address, Int] = (receiveWhile(5.seconds, messages = connectionCount * iterationCount) {
          case ref: ActorRef ⇒ ref.path.address
        }).foldLeft(Map(node(first).address -> 0, node(second).address -> 0, node(third).address -> 0)) {
          case (replyMap, address) ⇒ replyMap + (address -> (replyMap(address) + 1))
        }
Any scala experts?
Bartosz Sypytkowski
@Horusiath
@tstojecki yes and yes :) persistent actors need to inherit from PersistentActor (read Persistence docs). And paths I've shown are fully qualified HOCON paths
Bartosz Sypytkowski
@Horusiath
@schatekar receiveWhile is part of the function - it will keep receiving incoming messages as long as all of them matches specified criteria and connectionCount * iterationCount messages has been receive or 5.seconds timeout has been reached. { case ref: ActorRef ⇒ ref.path.address } is actually a very specific lambda, that is called only when input (in this case incoming message) is ActorRef - if it is, lambda returns ref.path.address, else unhandled will occur and receiveWhile will end. As result of the whole, a sequence of addresses will be return. Then we have foldLeft method, which is basically equivalent of Aggregate method from LINQ. It takes initialized Map(node(first).address -> 0, node(second).address -> 0, node(third).address -> 0)) as first element (it a dictionary with 3 key-value pairs where keys are addresses on first, second and third node and all values are 0). Then aggregation lambda { case (replyMap, address) ⇒ replyMap + (address -> (replyMap(address) + 1)) } which increments a counter for each address in map.
tl;dr it will receive up to connectionCount * iterationCount ActorRef messages for 5 seconds, and then count them by their nodes addresses giving map of addres->count as the result
Aaron Stannard
@Aaronontheweb
@james-andrewsmith I'm working on a NuGet package for this, but I recommend a token bucket throttler
every account gets their own Token bucket