Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Dec 05 17:21
    Aaronontheweb synchronize #4079
  • Dec 05 17:20
    Aaronontheweb labeled #4084
  • Dec 05 17:20
    Aaronontheweb labeled #4084
  • Dec 05 17:20
    Aaronontheweb milestoned #4084
  • Dec 05 17:20

    Aaronontheweb on dev

    Remove string interpolation fro… (compare)

  • Dec 05 17:20
    Aaronontheweb closed #4084
  • Dec 05 17:20
    Aaronontheweb commented #4084
  • Dec 05 15:43
    ismaelhamed opened #4084
  • Dec 04 23:34

    Aaronontheweb on dev

    Made cleanup call thread-safe (… (compare)

  • Dec 04 23:34
    Aaronontheweb closed #4081
  • Dec 04 23:34
    Aaronontheweb closed #4020
  • Dec 04 19:08
    Aaronontheweb commented #4079
  • Dec 04 18:35
    maratoss review_requested #4079
  • Dec 04 18:26
    maratoss synchronize #4079
  • Dec 04 07:42
    jiyeongj edited #4083
  • Dec 04 06:45
    jiyeongj opened #4083
  • Dec 04 06:35
    dependabot-preview[bot] labeled #130
  • Dec 04 06:35
    dependabot-preview[bot] opened #130
  • Dec 04 06:35

    dependabot-preview[bot] on nuget

    Bump System.Data.SqlClient from… (compare)

  • Dec 03 19:10
    Aaronontheweb synchronize #4081
Aaron Stannard
@Aaronontheweb
that's what the main room is for
either way - if you're interesting in getting Akka.NET onto .NET Core faster, join that room :p
Garrard Kitchen
@garrardkitchen
@Aaronontheweb Thanks, that’ll be a huge help. Ran same codebase againsts windows and worked as designed. It’s my first real outing with mono. Using F# too. Building cloud service to live in docker cloud with BYON (Azure). Not sure if this helps…hostname is IPV4 and public is commented out. Let me know if I can help?
Steven Mitcham
@smitcham
Hello, new Akka.net user here. Are there any examples of combining the FSM actors with the cluster.sharding capability? Is it is the same information as the persistent actor w/sharding in the docs?
fouimette
@fouimette
Does Terminate() perform what used to be ShutDown() and AwaitTermination()?
and how would I use WhenTerminated?
wdspider
@wdspider
I believe that Terminate replaces Shutdown and WhenTerminated replaces AwaitTermination..... I tend to use it like this:
_actorSystem.Terminate();
_actorSystem.WhenTerminated.Wait();
and if you are also using the Clustering stuff @ZoolWay created some graceful shutdown samples here: https://github.com/ZoolWay/akka-net-cluster-graceful-shutdown-samples
Marc Piechura
@marcpiechura
@fouimette @wdspider Terminate does the same as Shutdown and then returns WhenTerminated internally so you can replace these two calls to one and directly call .Wait on the Termiante call
wdspider
@wdspider
ah, thanks for clarifying.
fouimette
@fouimette
thank you
Marc Piechura
@marcpiechura
WhenTermianted can be used if you need to wait anywhere else in then code for the termination
np
fouimette
@fouimette
How can I clear out the dead letter that have accumulated in my test demo?
Aaron Stannard
@Aaronontheweb
@smitcham yep, you should be able to use a PersistentFSM with Cluster Sharding
don't know of an example
but it shouldn't be any different than any other persistent actor in terms of its behavior or setup
@fouimette dead letters are ephemeral - they're automatically logged and forgotten about unless you intercept them yourself
if you want to turn off deadletter logging there's an option for that in HOCON
Steven Mitcham
@smitcham
@Aaronontheweb thanks
I've got a PR in the Akka.DI.Unity project that updates to Unity 4, I wasn't sure whether there should be a totally different package for that since Unity >= 4 is not backwards compatible with 3.5. I've created a local package in our companies nuget feed, but it would be nice to get the full package up there.
Aaron Stannard
@Aaronontheweb
IMHO - best thing to do is to submit a pull request and see if anyone comments on it saying "OMG NO THIS WILL BE {x}"
I think it should be fine to upgrade it personally, but yeah
it's the responsibility of the people using it, at the end of the day
Steven Mitcham
@smitcham
The PR is already up if anyone wants to approve it.
Aaron Stannard
@Aaronontheweb
to speak up / take ownership of an OSS thing they care about
I'll go take a look now
fouimette
@fouimette
@Aaronontheweb Thanks!
Aaron Stannard
@Aaronontheweb
@smitcham FYI
In order to do a release, we need to do the following:
  • Update RELEASE_NOTES.md with a new version bump. Follow the convention there.
  • Submit a PR to the master branch once all of the changes have been brought in.
would you consider sending in another PR to do that?
Steven Mitcham
@smitcham
sure.
Aaron Stannard
@Aaronontheweb
and maybe upgrade to Akka.NET 1.1?
thanks, that'd be a big help
Steven Mitcham
@smitcham
also sure. I put that in a while back.
Aaron Stannard
@Aaronontheweb
I meant upgrade the package :p
so we can release it with updated dependencies
Steven Mitcham
@smitcham
yep
Aaron Stannard
@Aaronontheweb
@corneliutusnea heh, I'll give that a shot
going to be starting on that project soon-ish
Aaron Stannard
@Aaronontheweb
@smitcham doh, found a bug in the Akka.DI.TestKit because of that: akkadotnet/Akka.DI.Unity#4
already have a fix up for it: akkadotnet/akka.net#2189
fouimette
@fouimette
Is there a list of Hocon configuration options? I am looking for that dead letter logging option. Even better, where in the source can i find this option?
Steven Mitcham
@smitcham
@Aaronontheweb Here's the updated pull request. Let me know if it needs anything else akkadotnet/Akka.DI.Unity#5
Aaron Stannard
@Aaronontheweb
@fouimette the Config namespaces for each module have reference files built into them
check out the source
Arsene
@Tochemey
Hello how do I use EventFilter to test dead letters?
Arsene
@Tochemey
Hello How can I test the Event Bus pub/sub feature?
Bartosz Sypytkowski
@Horusiath
@Tochemey you can subscribe test actor or probe to event bus and verify it after publishing an event
Arsene
@Tochemey

@Horusiath I am doing some test of an Actor that supposes to write into file upon receiving every event. The actor subscribes to the type of event to receive. However when I published N number of events to the event bus the actor only act on the first event by writing it into the file. The others are kind of ignored. This is the test code

            ActorSystemRefs.ActorSystem = Sys;
            var actorSystem = ActorSystemRefs.ActorSystem;

            var loggingActor =
                actorSystem.ActorOf(Props.Create(() => new FileLoggerActor()));
            actorSystem.EventStream.Subscribe(loggingActor, typeof (AuditLog));
            actorSystem.EventStream.Subscribe(TestActor, typeof(Acknowleged));

            Within(TimeSpan.FromSeconds(timeout),
                () =>
                {
                    actorSystem.EventStream.Publish(new AuditLog(GuidFactory.Create().ToString(), DateTime.UtcNow, "me", "0000", "debit1", "mobile"));
                    actorSystem.EventStream.Publish(new AuditLog(GuidFactory.Create().ToString(), DateTime.UtcNow, "me", "0000", "debit2", "mobile"));
                    actorSystem.EventStream.Publish(new AuditLog(GuidFactory.Create().ToString(), DateTime.UtcNow, "me", "0000", "debit3", "mobile"));
                    var result = ExpectMsgAllOf<Acknowleged>();

                    Assert.NotNull(result);
                });

and this is the Actor:

    public class FileLoggerActor : ReceiveActor
    {
        private static string _filePath;


        public FileLoggerActor()
        {
            Ready();
        }

        public override void AroundPreStart()
        {
            ReadConfiguration();
        }

        public sealed override void Ready()
        {
            Receive<AuditLog>(log =>
            {
                WriteToFile(log);
                // This code is for testing purpose
                ActorSystemRefs.PushEvent(new Acknowleged(log));
            });
        }

        private static void ReadConfiguration()
        {
            _filePath = ConfigurationManager.AppSettings["FileLogger.FilePath"];
            if (_filePath == null)
            {
                throw new ConfigurationErrorsException(
                    "Configuration appSetting FileLogger.FilePath not" +
                    "found for FileLogger actor.");
            }

            // If audit trail file path is a relative file path, 
            // convert it to an absolute path.
            _filePath = _filePath.Replace("~", AppDomain.CurrentDomain.BaseDirectory);
        }

        private static void WriteToFile(AuditLog log)
        {
            var jsonString = JsonConvert.SerializeObject(log, Formatting.None);
            File.AppendAllText(_filePath, jsonString + Environment.NewLine);
        }
    }