Рейтинг:
15
Gerry Schmitz
Загрузите транзакции с каждого устройства в виде пакета в плоский файл; затем запустите процессор для каждого пакета вместо "принудительной подачи".
Sivachandran R
Спасибо за ваш ответ. Не могли бы вы дать мне более подробную информацию о “batch as flat file”,так как я очень новичок в разработке приложений для android-устройств, даже если есть какая-то статья.
Gerry Schmitz
Сколько устройств? Создайте несколько серверов и синхронизируйте их для 25-центового решения.
Sivachandran R
Около 10 устройств каждое устройство публикует около 2500 записей в одну таблицу одновременно. Все данные в объекте Json публикуются через web api.so что может быть лучшим вариантом для ответа 2.
Рейтинг:
12
Vivek_Dutta
Насколько я понимаю эту проблему - предполагая, что хранимый proc выполняет много бизнес-логики, вы можете сделать;
1) сбросьте данные от каждого пользователя в таблицу БД (не файлы - очень трудно управлять). Используйте службу Windows или запланированную задачу для чтения данных из этой таблицы и выполнения процедуры storeprocedure.
2) сбросьте данные от каждого пользователя в таблицу БД (не файлы - очень трудно управлять). Используйте задание SQL для чтения данных из этой таблицы и выполнения процедуры storeprocedure.
3) Сделайте свой вызов API однопоточным, чтобы он выполнял любой последующий вызов ожидания с использованием объектных блокировок. Для этого требуется много управляемого кода, основанного на том, сколько пользователей публикуют данные. Если сохраненный proc делает прямую вставку, это хороший вариант.
Gerry Schmitz
"Транзакции" поступают в виде "плоских записей".
Каковы бы ни были ваши чувства по поводу "плоских файлов", загрузка начинается с файла "сообщения" (XML; JSON; BINARY), который является плоским. Сервер обновляет базу данных плоскими записями с устройства. Независимо от того, помещаются ли плоские записи в файл БД, это промежуточный шаг между плоскими и БД.
Вы понимаете, что он говорит: "сервер баз данных-это горлышко бутылки"? Существуют "файловые" (upload) серверы (т. е. FTP) и серверы баз данных; и есть разница.
Vivek_Dutta
Благодарю вас за то, что вы подчеркнули ключевые моменты. Я, конечно, пропустил это. Файлы могут быть размещены на сервере (API может просто сбросить плоские файлы в расположение сервера), а служба windows может прочитать каждый файл и передать данные в БД, убедившись, что никакой другой процесс не вставляет записи в эти таблицы.