Вопрос

Я пытаюсь выяснить, как можно настроить базу данных и/или модель, чтобы обрабатывать различные значки. Давайте возьмем переполнение стека Значки В качестве примера. Существуют разные правила для каждого, а некоторые могут быть просто переменной (например, 10 комментариев против 100 комментариев).

Мой вопрос: как настроить этот тип проверки/проверки в приложении? Должен ли каждый значок иметь свой собственный метод?

Это было полезно?

Решение

Будучи таким образом, запускается с SQL Server, задание агента SQL Server для периодического запуска для таблицы статистики. Хранитованная процедура (ы) в работе вставлялась в таблицу значков/и т. Д. При соблюдении критериев.

Триггеры будут еще одним вариантом, но их выполнение не может быть отложено для объема нескольких пользователей.

Другие советы

Вот как я бы реализовал, если бы мне понадобилось:

Я настрою некоторый диспетчер очередей (есть много такого программного обеспечения) и напишу брокера, который обработает сообщения из очереди.

Каждый раз, когда происходит любое событие, например: вы просматривали тему, вы отредактировали свой комментарий, вы отредактировали свой ответ, отредактировали ответа другого человека, вы провели просмотр и т. Д. - вы собираете еще одно сообщения с описанием события. Да, это будет В самом деле Огромное количество сообщений там.

После того, как вы собрали это огромное количество сообщений - вы можете запустить брокера, который будет обрабатывать сообщения по расписанию или в режиме реального времени.

С этой схемой вы можете распространить брокера на такие сложные значки, насколько вы хотите.

Я предполагаю, что некоторые рассчитывают в реальном времени, в то время как другие рассчитываются в процессах, которые бегут периодически.

Например, для значка, который появляется, когда ваш ответ получает 10 подъем, это можно рассчитать в реальном времени с небольшим ударом производительности.

С другой стороны, для значка, который проверяет, если вы попадете в ежедневную репутацию Cap x Cofity Of Times, вы, вероятно, захотите сделать это как какую -то партийную работу, поскольку вы проверяете только в конце каждого дня.

Ключевой проблемой является то, чтобы продолжать работать быстро. Stack Overflow получает тысячи (может быть, десятки тысяч) вопросов в день, вероятно, сотни тысяч комментариев. Все, что не тривиально для расчета, должно работать в отдельном процессе. Он сохраняет основную функциональность плотной, ограниченной и чистой, обеспечивая высокую производительность. Запуск сложных расчетов в процессах вне основной системы публикации позволяет вам сделать это, не влияя на способность пользователей использовать сайт. Если задача достаточно сложна, вы можете масштабировать горизонтально, просто запустив один и тот же процесс на нескольких машинах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top