Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 17:37
    Aaronontheweb commented #4082
  • 17:37
    Aaronontheweb commented #4082
  • 17:22
    Aaronontheweb milestoned #4234
  • 17:22
    Aaronontheweb labeled #4234
  • 17:22
    Aaronontheweb labeled #4234
  • 17:22
    Aaronontheweb labeled #4234
  • 17:21
    Aaronontheweb opened #4234
  • 17:20
    Aaronontheweb commented #4211
  • 17:13
    Aaronontheweb synchronize #4212
  • 17:10
    Aaronontheweb synchronize #4211
  • 15:57
    Aaronontheweb commented #4232
  • 15:07
    Aaronontheweb closed #2345
  • 15:07
    Aaronontheweb commented #2345
  • 15:07
    Aaronontheweb demilestoned #2345
  • 14:58
    IgorFedchenko commented #2345
  • 14:58
    IgorFedchenko commented #2345
  • 14:55
    IgorFedchenko commented #2345
  • 12:00
    Arkatufus synchronize #4228
  • 11:16
    Arkatufus synchronize #4228
  • 11:12
    Arkatufus synchronize #4228
Shuffzord
@Shuffzord

@Horusiath this is from my config file. Akka: <akka> <hocon> <![CDATA[ akka { loglevel = DEBUG loggers = ["Akka.Logger.NLog.NLogLogger, Akka.Logger.NLog"] log-config-on-start = on } ]]> </hocon> </akka>

And configsections deifinition

    <section name="akka" type="Akka.Configuration.Hocon.AkkaConfigurationSection, Akka" />
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>

And nlog section

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="true" internalLogFile="C:\Temp\internal_log_file.txt" debug="true" internalLogLevel="Trace"> <targets> <target name="f1" xsi:type="File" fileName="Scrapper.logfile" layout="[${date}] [${threadid}] [${message}]" /> <target name="c" xsi:type="Console" layout="[${threadid}] [${message}]" /> </targets> <rules> <logger name="*" writeTo="f1" /> <logger name="*" writeTo="c" minlevel="DEBUG" /> </rules> </nlog>

tried to create actiorsystem in following ways
var section = (AkkaConfigurationSection)ConfigurationManager.GetSection("akka"); var system = ActorSystem.Create("webcrawler2"); ClusterSystem = ActorSystem.Create("webcrawler", section.AkkaConfig);
As i see, first version is basically what is done is original source code

Ohh and getting logger is private readonly ILoggingAdapter _logger = Context.GetLogger();
Bartosz Sypytkowski
@Horusiath
you don't need to access ConfigurationManager explicitly - app.config content will be loaded automatically
Shuffzord
@Shuffzord
thats what i read but since it wasnt working i tried to do it manually
no difference though
Bartosz Sypytkowski
@Horusiath
I've create a fresh project with Akka.Logger.NLog and had no problems with plugin itself (more with nlog config section within app.config) - but at least this proves, that NLog is used indeed
Shuffzord
@Shuffzord
i dont think it sthe akka problem anymore i think its something in nlog
i will try to check internal logs
thanks for help though
wdspider
@wdspider
@Shuffzord after running into a similar issue a couple months back, I concluded that nlog likes to fail silently when it can't parse its config file. I ended up hard-coding the following InternalLogger settings, so that it wouldn't be quite so silent:
public class Program
{
    public static void Main(string[] args)
    {
        // Ensure NLog logs errors even if config file can't be parsed
        InternalLogger.LogLevel = LogLevel.Error;
        InternalLogger.LogToConsoleError = true;
        InternalLogger.LogToTrace = true;
        InternalLogger.LogFile = "nlog.errors";

        // Initialize topshelf service
        HostFactory.Run(x =>
        {
            x.SetServiceName("MyService");
            x.SetDisplayName("My Service");

            x.UseNLog();

            x.StartAutomaticallyDelayed();
            x.Service<MyService>();
        });
    }
}
Kevin Avignon
@Kavignon
Hi. I have a quick question. On the akka-bootcamp repo, it mentions that the support for F# is accepted. What's currently lacking with the F# implementation compared to the C# one ? I'd like to be able to implement an event-based architecture with Akka.NET to create an rpg prototype. Am I getting over my head here doing it with F# ?
Bartosz Sypytkowski
@Horusiath
@Kavignon default F# API doesn't allow you to describe some things that are necessary for features like cluster sharding or cluster singleton (Akkling API does however) - in general F# API is less used and less tested and you'll have less examples for it - usual thing in smaller communities.
Damian Reeves
@DamianReeves
I'm looking to begin work on an Akka.Persistence plugin for Marten. The required serialization format is JSON, is there a way for me to have messaging use Wire and Persistence use JSON?
Aaron Stannard
@Aaronontheweb
@DamianReeves yep
some of our other plugins use JSON for persistence
I think the Sqlite one does
am I right about that @alexvaluyskiy ?
Vagif Abilov
@object
@Kavignon while F# API is less used and lack few details we in our project find the missing pieces non-significant and are implementing the system in F# and Akka.NET. We do not use cluster though.
Damian Reeves
@DamianReeves

cool. Is this something the user has to remember or can the persistence plugin enlist the correct serializer.

Meaning if change my serializer to wire and then I switch my persistence plugin to one requiring JSON, can I ensure I don't get wire formatted chunks sent to the persistence writer?

Damian Reeves
@DamianReeves
Ok, I think I got it. Looked at the Redis provider and see a section on serialization:
akka.actor {
  serializers {
    redis = "Akka.Serialization.YourOwnSerializer, YourOwnSerializer"
  }
  serialization-bindings {
    "Akka.Persistence.Redis.Journal.JournalEntry, Akka.Persistence.Redis" = redis
    "Akka.Persistence.Redis.Snapshot.SnapshotEntry, Akka.Persistence.Redis" = redis
  }
}
Ronnie Overby
@ronnieoverby
Does akka.net have a mechanism for rendezvous multiple async operations? Think Task.WhenAll
For example I'm processing a file. I might have many actors operating in parallel doing different things but all at the same time and I want to send a notification to a user's email address when I'm finished with all of the sub processes involved in processing the file.
I'm trying to figure out how to coordinate signaling that ALL of the actors involved have finished their part of the processing
Ronnie Overby
@ronnieoverby
Of course I have ideas about how to build such a system, but I'm wondering if the AKKA has this figured out for me :)
Vagif Abilov
@object
@ronnieoverby IMHO the actor models's way of achieving this is to implement the actor that needs to dispatch many parallel tasks and collect its results as a reactive accumulator: it sends messages to all worker actors at once and falls asleep. The worker actors sends back its results which are being accumulated by the dispatcher.
Ronnie Overby
@ronnieoverby
I think it's a great opinion.
Alex Valuyskiy
@alexvaluyskiy
All sql plugins use FindSerializerForType
Vagif Abilov
@object
There is also a great post by @Horusiath on the philosophy of Akka: http://bartoszsypytkowski.com/dont-ask-tell-2/
Alex Achinfiev
@aachinfiev

I am trying to play around with EventsByTag in Akka Persistence but running into an issue. I have defined config:

// In config
event-adapters = {
       security-tagger = "AkkaPersistenceTest.SecurityTagger, AkkaPersistenceTest"
}
event-adapter-bindings = {
        "AkkaPersistenceTest.SecurityEntity, AkkaPersistenceTest" = security-tagger
}

public class SecurityEntity
    {
        public Guid Id { get; set; } 
        public string Name { get; set; }

        public string Identifier { get; set; }
    }

public class SecurityTagger : IWriteEventAdapter
    {
        public SecurityTagger(ExtendedActorSystem system)   // For some reason it actually wants a constructor with actor system. 
        {
        }

        public string Manifest(object evt)
        {
            return "";
        }

        public object ToJournal(object evt)
        {
            var e = evt as SecurityEntity;
            if (e == null) return evt;
            Console.WriteLine("Tagging security {0} with {1}", e.Id, e.Identifier);
            return new Tagged(e, new[] { e.Identifier });
        }

I see it instantiate the Tagger but never calls the ToJournal and never records the actual tags on the persistence entry. I am using Akka.Persistence.Cassandra plugin based on the PR submitted by Constantin. Am I missing some configuration? I see the actual persistence working and event recorded, just without the tags. Thanks.

qwoz
@qwoz
@Aaronontheweb interesting writeup of DigiOutsource. I noticed they're planning to use Service Fabric -- is there any documentation of how they will be setting this up? A (semi-) official starter solution demonstrating a basic 5 node akka.net cluster bootstrapped from Service Fabric would be very useful.
Aaron Stannard
@Aaronontheweb
@qwoz second time I've had that question since publishing that this morning lol
I think I'm just going to bite the bullet and do something myself on SF soon
qwoz
@qwoz
awesome... it's something I've been meaning to play around with myself, but other priorities always get in the way (geez... the business actually wants new features and bugs fixed?!?). And getting started using something from the Powers That Be™ that has proven itself in a production scenario would likely save hitting a lot of pitfalls along the way.
Alex Achinfiev
@aachinfiev
@aachinfiev Update on my own question. I have to actually map the events rather than the state type which I was doing. Now I see event is being recorded and showing up in the eventsbytag1 table.
Chris Martin
@trbngr
Hey guys. Anyone know of any open jobs? Scala,C#, frickin VB.. I don’t care ;)
Bartosz Sypytkowski
@Horusiath
@DamianReeves newer versions of Akka.Persistence.PostgreSql plugin will have native support for json/jsonb data type
Damian Reeves
@DamianReeves
that will be a great feature. @Horusiath do you have a recommendation for what persistence plugin is the best starting point for a new persistence plugin writer; I've been splitting between looking at MongoDb, Redis, and the EventStore plugin located here: https://github.com/vladkosarev/Akka.Persistence.EventStore
I would thing EventStore has more in common with Marten since they both natively implement event sourcing
But the EventStore plugin is 7 months old
Alex Achinfiev
@aachinfiev
If I want to determine if a given entity already exists in the system using a given tag for it, is using EventsByTag stream an appropriate way to do so? Is there some sort of marker that tells me that there are no events and that means this entity doesn't exist, and reading one event would give me the latest event info that has been processed? Thanks.
Aaron Stannard
@Aaronontheweb
I gotta put this damn Mono adventure to bed
Maciek Misztal
@mmisztal1980
Hi guys, does Context.SetReceiveTimeout(null) disable receving ReceiveTimeout messages?
Aaron Stannard
@Aaronontheweb
so close
@mmisztal1980 yep
that's how you cancel them
Maciek Misztal
@mmisztal1980
I seem to have a problem with it, probably some execution path where I don't set it...
what's up with Mono by the way?
Aaron Stannard
@Aaronontheweb
8 tests shy