Example #1
0
        public Linq2DbReadJournal(ExtendedActorSystem system,
                                  Configuration.Config config, string configPath)
        {
            writePluginId = config.GetString("write-plugin");
            //IDK Why we need this, but we do.
            system.RegisterExtension(Persistence.Instance);
            var persist = Persistence.Instance.Get(system);

            eventAdapters = persist
                            .AdaptersFor(writePluginId);
            readJournalConfig = new ReadJournalConfig(config);
            this.system       = system;
            var connFact =
                new AkkaPersistenceDataConnectionFactory(readJournalConfig);

            _mat = Materializer.CreateSystemMaterializer(system,
                                                         ActorMaterializerSettings.Create(system),
                                                         "l2db-query-mat" + configPath);
            readJournalDao = new ByteArrayReadJournalDao(
                system.Scheduler.Advanced, _mat,
                connFact, readJournalConfig,
                new ByteArrayJournalSerializer(readJournalConfig,
                                               system.Serialization,
                                               readJournalConfig.PluginConfig.TagSeparator));
            journalSequenceActor = system.ActorOf(Props.Create(() =>
                                                               new JournalSequenceActor(readJournalDao
                                                                                        ,
                                                                                        readJournalConfig
                                                                                        .JournalSequenceRetrievalConfiguration)),
                                                  readJournalConfig.TableConfig.TableName +
                                                  "akka-persistence-linq2db-sequence-actor");
            delaySource = Source.Tick(
                TimeSpan.FromSeconds(0), readJournalConfig.RefreshInterval,
                0L)
                          .Take(1);
        }
 public ByteArrayReadJournalDao(IAdvancedScheduler ec, IMaterializer mat, AkkaPersistenceDataConnectionFactory connectionFactory, ReadJournalConfig readJournalConfig, FlowPersistentReprSerializer <JournalRow> serializer) : base(ec, mat, connectionFactory, readJournalConfig, serializer)
 {
 }