簡體   English   中英

如何從C#代碼后面為akka.net持久性參與者設置連接字符串

[英]how to set connection string for akka.net persistence actor from C# code behind

我使用了配置為sql server插件的持久性參與者。 這是我的hocon配置下面。

這里數據源連接字符串設置為我的本地主機。

可以在actor系統初始化之前從C#代碼中設置此連接字符串嗎?

akka.persistence {
          journal {
            plugin = "akka.persistence.journal.sql-server"                
            sql-server {
                  class = "Akka.Persistence.SqlServer.Journal.SqlServerJournal, Akka.Persistence.SqlServer"
                  plugin-dispatcher = "akka.actor.default-dispatcher"

                  # connection string used for database access
                  connection-string = "Data Source=ES-NB-046\\MSSQLSERVER_2014;Initial Catalog=SwedolTest;User ID=sa;Password=aaaaaa@;"
                  # can alternativly specify: connection-string-name

                  # default SQL timeout
                  connection-timeout = 30s

                  # SQL server schema name
                  schema-name = dbo

                  # persistent journal table name
                  table-name = EventJournal

                  # initialize journal table automatically
                  auto-initialize = on

                  timestamp-provider = "Akka.Persistence.Sql.Common.Journal.DefaultTimestampProvider, Akka.Persistence.Sql.Common"
                  metadata-table-name = Metadata
            }
          } 

          snapshot-store {
            plugin = "akka.persistence.snapshot-store.sql-server"
              sql-server {
                class = "Akka.Persistence.SqlServer.Snapshot.SqlServerSnapshotStore, Akka.Persistence.SqlServer"
                plugin-dispatcher = "akka.actor.default-dispatcher"
                table-name = SnapshotStore
                schema-name = dbo
                auto-initialize = on
                connection-string = "Data Source=ES-NB-046\\MSSQLSERVER_2014;Initial Catalog=SwedolTest;User ID=sa;Password=aaaaaa@;"
             }
          }

      }

您可以使用配置后備

namespace AkkaTest
{
    using Akka.Actor;
    using Akka.Configuration;

    class Program
    {
        static void Main(string[] args)
        {
            //Main config could be load different ways. This is placeholder
            var mainConfig = ConfigurationFactory.Default();
            var conString = GetConnectionString();

            var conStringConfig = ConfigurationFactory.ParseString(
                $@"akka.persistence.journal.sqlite.connection-string        = ""{conString}""
                   akka.persistence.snapshot-store.sqlite.connection-string = ""{conString}""
            ");

            mainConfig = mainConfig.WithFallback(conStringConfig);

            var system = ActorSystem.Create("stackOverflow", mainConfig);
        }

        private static string GetConnectionString()
        {
            return "1";
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM