У меня есть front-end приложение, работающее на Rails 4 + Postgres. Позвольте называть FRONT_APP
. У меня есть приложение для запуска статистики Rails 4 + Mongodb. Позвольте называть его STATISTICS_APP
.
В моем FRONT_APP
я использую этот скелетный запрос XHR с этим кодом:
$.ajax({
url: "http://localhost:3000/hits",
type: "POST",
crossDomain: true,
data: { user_data: "Value", token: "TokenString"}
})
Я отправляю запрос POST
в STATISTICS_APP
и создаю экземпляр Hit
который имеет соответствующие данные. Таким образом, я собираю миллионы строк данных на моем монгодбе.
И у работника моего STATISTICS_APP
, я буду оценивать все данные и с прямым подключением к моей продукции Postgres db, я буду обновлять соответствующие таблицы.
В результате я покажу статистическую информацию через мой Postgres db.
Считаете ли вы, что это удобный способ сделать эту работу?
Или у вас есть лучший рабочий процесс?
спасибо
То, что вы имеете в виду, является стандартным материалом для analytics
- отправьте запрос в другую систему, которая инициирует запрос на сервере аналитики (следовательно, запись запроса как hit
или аналогичного)
Хотя ваша структура верна (асинхронно отправляет запросы в другое приложение), я бы избежал ajax - лучший способ - запросить ресурс с другого сервера (обычно это 1px gif, например Google Analytics):
Как работает код отслеживания
В целом, код отслеживания Google Analytics (GATC) извлекает данные веб-страницы следующим образом:
Браузер запрашивает веб-страницу, содержащую код отслеживания. Создан JavaScript-массив с именем _gaq, и команды отслеживания помещаются в массив. Элемент создается и активируется для асинхронной загрузки (загрузка в фоновом режиме). Получен код отслеживания ga.js, при этом автоматически определяется соответствующий протокол. После того, как код загружен и загружен, команды в массиве _gaq выполняются, и массив преобразуется в объект отслеживания. Последующие отслеживающие звонки поступают непосредственно в Google Analytics. Загружает элемент сценария в DOM. После того, как код отслеживания собирает данные, запрос GIF отправляется в базу данных Google Analytics для ведения журнала и последующей обработки.
Мы сделали что-то подобное, но поскольку наше приложение еще находится в разработке, мы на самом деле все еще используем xmlhttprequest
(ajax
in xmlhttprequest
):
//v0.0.230
//authenticates with server
(function(token) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST","http://*******.herokuapp.com/data",true);
xmlhttp.setRequestHeader("Authorization", "Token " + token);
xmlhttp.send();
})(tracker);
Данные
Что касается хранения данных, мы фактически фиксируем все обнаженные данные в Redis и затем сохраняем в Postgres (heroku) впоследствии
Мы долгое время не разрабатывали его, но что касается сохранения данных, вы должны обязательно посмотреть на хранение "краткосрочных" данных и "долгосрочных" данных
Надеюсь, это дает какое-то направление?