所以我有一些不同的解析服务器设置。 一台服务器只是用来在统一的数据库中捕获来自各种应用程序(我那里有很多)的错误日志。
因此,我可能有一个特定的独立数据迁移工具,如果遇到错误,它将把异常写出到此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
答案 0 :(得分:0)
我相信如果不做任何改动,所有Parse SDK都无法初始化多个实例。
例如,在iOS SDK中,可以在重新启动应用程序时创建一个新实例(例如,使用不同的服务器URL),但是不能有多个实例。关于iOS SDK的讨论还涉及能够change the configuration without restart,但还没有人实现。
我们很乐意对此进行PR,但是由于需要在多个实例之间管理缓存,用户等,因此需要进行大而复杂的检修。