在一个应用程序中是否可以配置多个解析客户端?

时间:2019-04-04 18:19:29

标签: c# parse-platform

所以我有一些不同的解析服务器设置。 一台服务器只是用来在统一的数据库中捕获来自各种应用程序(我那里有很多)的错误日志。

因此,我可能有一个特定的独立数据迁移工具,如果遇到错误,它将把异常写出到此Error_log解析表/类中。没问题。

但是,如果我有一个本身使用了Parse数据库的应用程序,我将无法弄清楚如何使其在自己的解析服务器配置中正常工作,而是将错误日志写给其他用户解析服务器实例。

是的...我可能会遇到麻烦,只能通过REST API来写一些日志,但是我想避免这种情况,并坚持使用本机专用的本机解析API,因为API赋予REST的好处(例如最终节省所有.NET内容)。

编辑

需要一些澄清,所以我去...

在应用方面(此示例为c#,但在iOS等情况下也是如此)…我通常像这样对Parse客户端进行初始化...

                ParseClient.Initialize(new ParseClient.Configuration
                {
                    ApplicationId =  "MyAppID",
                    WindowsKey = "MyDotNetKey",
                    Server = "www.myparseserver.com/app1"
                });

因此,所有保存解析对象的调用都要通过该解析客户端连接

但是我需要做的是这样的……。

//Main App cloud database
                ParseClient1.Initialize(new ParseClient.Configuration
                {
                    ApplicationId =  "MyAppID",
                    WindowsKey = "MyDotNetKey",
                    Server = "www.myparseserver.com/app1"
                });

                ParseClient2.Initialize(new ParseClient.Configuration
                {
                    ApplicationId =  "MyAppID",
                    WindowsKey = "MyDotNetKey",
                    Server = "www.myparseserver.com/errorcollection"
                });

try{
                ParseConfig config = null;
                config = await ParseConfig.GetAsync().ParseClient1;
} catch (Exception ex){
   ParseObject MyError = new ParseObject("Error_Log");

   MyError["Application"] = "My First App-App2";
   MyError["Error"] = ex.message;
   await MyError.Save().ParseClient2;

}

是的-这都是假代码...我的意思是我希望能够在一个应用程序中拥有多个ParseClient实例。

现在...我可以简单地编写一个例程,该例程写出将错误ParseClient.Initialization重置为错误解析服务器实例的错误,然后在完成后将其重做回原始(主要应用程序数据)实例...但是这只是在多线程环境中提出问题,如果应用程序中的其他线程立即在错误方法重置init时写出解析数据,则会引起冲突。

如果ParseClient是IDisposable的,我可能可以使用:


ParseClient ParseErrorServer = new ParseClient();
ParseErrorServer.ApplicationId = "hmmm";
ParseErrorServer.WindwosKey= "hmmm";
ParseErrorServer.Server= "www.hmmm.com/errorcollection";

using ParseErrorServer {

   //Do The Work

}

像泥一样清澈吗? ; P

1 个答案:

答案 0 :(得分:0)

我相信如果不做任何改动,所有Parse SDK都无法初始化多个实例。

例如,在iOS SDK中,可以在重新启动应用程序时创建一个新实例(例如,使用不同的服务器URL),但是不能有多个实例。关于iOS SDK的讨论还涉及能够change the configuration without restart,但还没有人实现。

我们很乐意对此进行PR,但是由于需要在多个实例之间管理缓存,用户等,因此需要进行大而复杂的检修。