Итак, у меня есть несколько разных серверов разбора.Один сервер просто для записи журналов ошибок из различных приложений (у меня есть много) в красивой унифицированной базе данных.
Так что у меня может быть специальный автономный инструмент переноса данных, который, если он обнаружит ошибку, выпишетисключение в эту таблицу / класс анализа Error_log.Никаких проблем там нет.
Но, если у меня есть приложение, которое использует базу данных Parse для себя, я не смог выяснить, как позволить ей работать на собственной конфигурации сервера синтаксического анализа для своих собственных вещей, нозаписывать журналы ошибок в этот другой экземпляр сервера Parse.
Да ... Я мог бы испытать трудности с записью чего-либо через API REST только для записи журналов, но я пытаюсь избежать этого ипридерживайтесь собственных 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 к экземпляру сервера анализа ошибок, а затем возвращают его обратно в исходный экземпляр (данные основного приложения), когда это сделано ... но это просто вызывает проблемы в многопоточной среде и вызывает конфликтыесли какой-то другой поток в приложении переходит к записи данных анализа в тот момент, когда метод ошибки сбрасывает инициализацию.
Если ParseClient был IDisposable, я, вероятно, мог бы сделать это, используя:
ParseClient ParseErrorServer = new ParseClient();
ParseErrorServer.ApplicationId = "hmmm";
ParseErrorServer.WindwosKey= "hmmm";
ParseErrorServer.Server= "www.hmmm.com/errorcollection";
using ParseErrorServer {
//Do The Work
}
Это ясно как грязь еще?; P