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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以在单个应用程序中配置多个解析客户端?相关的知识,希望对你有一定的参考价值。

所以我有几个不同的解析服务器设置。一台服务器只是从漂亮的统一数据库中捕获各种应用程序的错误日志(我有很多)。

所以我可能有一个特定的独立数据迁移工具,如果它遇到错误,会将异常写入这个Error_log解析表/类。没问题。

但是,如果我有一个使用Parse数据库的应用程序本身,我无法弄清楚如何让它自己的解析服务器配置为它自己的东西,但写出错误日志到这个其他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

答案

在没有改变的情况下,我相信Parse SDK都没有能够初始化多个实例。

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

我们很乐意为此审核PR,但是它需要进行重大而复杂的检查,因为您需要跨多个实例管理缓存,用户等。

以上是关于是否可以在单个应用程序中配置多个解析客户端?的主要内容,如果未能解决你的问题,请参考以下文章

我们可以将用户组/不同用户的 Keycloak 多个密码策略配置到单个领域吗?

WCF:单个服务的多个绑定配置

是否可以向模板和配置添加多个变量?

是否有在单个活动中处理多个片段的 Android 设计模式?

Linux X11 单个会话中的多个客户端

多个服务器上的单个 SSL 证书以将推送通知发送到同一应用程序