Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 14:45
    Zetanova commented #3811
  • 13:55
    Aaronontheweb commented #3811
  • 13:53
    Aaronontheweb commented #3811
  • 13:48
    Zetanova commented #3811
  • 13:21
    Aaronontheweb commented #3811
  • 12:15
    PetrPejcel opened #3917
  • 09:56
    Zetanova commented #3903
  • 09:42
    Zetanova commented #3811
  • 09:38
    Zetanova commented #3811
  • 09:37
    Zetanova commented #3811
  • 08:37
    Pzixel commented #3908
  • 08:20
    Zetanova synchronize #3916
  • 08:13
    Horusiath commented #3908
  • 08:12
    Horusiath commented #3908
  • 08:11
    Horusiath commented #3908
  • 07:58
    Horusiath commented #3284
  • 07:56
    Horusiath commented #3284
  • 07:32
    ismaelhamed commented #3284
  • 07:24
    Zetanova opened #3916
  • Sep 16 15:35
    Aaronontheweb commented #3284
Aaron Stannard
@Aaronontheweb
the tooling for it is great
among other things
qwoz
@qwoz
Any trick to sending email from within an actor? I'm using SMTPClient and I'm temporarily abusing NUnit a little to actually send out emails for real from within my actor as part of the test as a quick way of verifying the contents are what I expect (I'll fake the email send later). The problem is that I get an SMTPException with an inner exception of ThreadAbortedException.
Aaron Stannard
@Aaronontheweb
@qwoz the ThreadAbortedException usually comes from the test runner
when cleaning up the actors
when I've had to do this stuff before I just had an actor who would queue "email messages" out onto a queue
that would get scooped up by another process and delivered in batch
but that was kind of a special case with how I had to deliver them
(wasn't really over email - just a similar notification system)
what I would do in your case
is create a wrapper around the SMTPClient
can be a thin one
and then unit test with a mock / fake version of that wrapper class
that way you're not live-firing emails during testing
qwoz
@qwoz

hm... I'm using SmallestMailboxPool over the actor that sends out emails to have a bunch available. That actor simply does:

Receive<Email>(email => // SMTPClient stuff here );

so I'd think it wouldn't actually finish and clean up the actor prior to that call completing.

Aaron Stannard
@Aaronontheweb
is the SMTP connection persistent?
or is it something you need to open / close per-request
qwoz
@qwoz
not persistent... it connects to the server for each email send.
Aaron Stannard
@Aaronontheweb
got it
yeah I'd just have the actor fire up a new client on each request like you're doing then
qwoz
@qwoz
so this is probably some NUnit incompatibility that I'll just need to work around by mocking it for now. I wanted to be able to see in my email account that the email is actually formatted the way I want since the piece that actually uses this isn't fully implemented yet.
the joys of prototyping :smile:
Alex Achinfiev
@aachinfiev
@Aaronontheweb does using code contracts put any constraints on cross platform compatibility? I.e running on mono.
Aaron Stannard
@Aaronontheweb
not as far as I know
we use them in NBench / Helios / DotNetty
all of those can run on Mono
hidavidpeng
@hidavidpeng
Hi I'm using the Supervisor to catch the exception. But How can I get the message in Supervisor so that I can re
Hi I'm using the Supervisor to catch the exception. But How can I get the message in Supervisor so that I can re-read the message again? thank you.
@Silv3rcircl3 thank you. i read it later. I'm writing the demo with books.
Bartosz Sypytkowski
@Horusiath
@artem-karnaukh which version of Akka.Cluster.Sharding are you using? Also what steps have you made before an error occurred (maybe hard/graceful shutdown of a node)?
Peter Bergman
@peter-bannerflow
@Aaronontheweb reading the documentation on Akka.Cluster in the web crawler example project, in the section on ASP.NET integration (https://github.com/petabridge/akkadotnet-code-samples/tree/master/Cluster.WebCrawler#best-practices-for-aspnet-and-akkanet-integration) the router is created with a RemoteJobActor. But that don't match the actual code in the repo, where the router is created with Props.Empty (https://github.com/petabridge/akkadotnet-code-samples/blob/master/Cluster.WebCrawler/src/WebCrawler.Web/Global.asax.cs#L23). Maybe the readme should be updated to reflect this to avoid confusion
artem-karnaukh
@artem-karnaukh
@Horusiath hey, thanks for the response. I ve just updated from 1.6 to the latest beta and everything works just fine. Thanks a lot for the amazing sharding module.
Peter Bergman
@peter-bannerflow
I have some questions about Akka.NET and cluster routers. Hope someone can help me clear things up...
  1. As far as I understand it, in order to pass messages between nodes in a cluster, the message must go through a a cluster-aware router. Correct?
  2. And for that I can either use a group or pool router. Difference is that the group router sends the mesasge to predifned routees that might or might not exist at the target node. The pool router on the other hand deploys its routees on the target node. Correct?
  3. For deciding where to route message (and in case of pool router, deploy routees), the use-role property in the cluster part of the deployment config is used. Correct?
Arjen Smits
@Danthar
@peter-bannerflow
1: A cluster-aware router is a piece of infrastructure that makes it easier for you to communicate with the cluster as a whole. It adds a level of abstraction. You can communicate with nodes in your cluster directly if you want. But in order to do this properly you'd end up rebuilding alot of the management stuff that a cluster aware router already does for you. But if the out-of-the-box (OOB) cluster routers dont fit your use-case. You can certainly do this.
2: Yes
3: Yes
Peter Bergman
@peter-bannerflow
@Danthar ok, thanks for verifying my assumptions
Peter Bergman
@peter-bannerflow
What about if I pass an IActorRef in a message to some other node in the cluster, will an actor receiving that message be able to send a direct message to that IActorRef?
Marc Piechura
@marcpiechura
@peter-bannerflow yes
Peter Bergman
@peter-bannerflow
Right, thanks 😊
Marc Piechura
@marcpiechura
Np
JaspritBola
@JaspritBola
I'm looking at some logs here, and
I'm looking at some logs here, and I'm noticing that the "Association failure ---> Akka.Remote.Transport.AkkaProtocolException: The remote system has a UID that has been quarantined. Association aborted." eventually turns into a "Akka.Remote.Transport.InvalidAssociationException: Association failure ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown."
JaspritBola
@JaspritBola
Another odd behaviour is that I'm still getting Association failures after I downed the address. The cluster state shows the status is down. Do I also have to call leave on the address to stop association attempts?
Pablo Castilla
@pablocastilla
Hi! I have just left a question on stackoverflow. Basically is which is the best way to assure that a timeout message is sent, maybe some could help. Thanks!
Bartosz Sypytkowski
@Horusiath
@pablocastilla what do you mean by timeout message? With fire-and-forget messages, there is nothing to wait for
Pablo Castilla
@pablocastilla
@Horusiath I mean defered messages. When you want to get notified at a certain exact time.
Bartosz Sypytkowski
@Horusiath
this is hard case when you try to think about consistency i.e. should it be allowed to call the same scheduled timeout twice?