WedX - журнал о программировании и компьютерных науках

Планировщик в ядре asp.net против T-SQL

Я ищу плюсы и минусы или передовую практику для следующей проблемы, с которой я сталкиваюсь...:

Я создал веб-сайт, используя ASP.NET Core 2.0, используя базу данных SQL Server.

В рамках работы мне нужно запустить фоновое задание для проверки и очистки некоторых записей в моей базе данных. Я колеблюсь между следующим:

  1. Создайте фоновое задание в коде, используя планировщик для запуска этой задачи очистки (скажем, планировщик, который будет просыпаться каждые 15 минут, чтобы запустить метод в другом потоке для выполнения задания).

  2. Создайте T-SQL, который будет делать то же самое (используя встроенный планировщик, который есть в БД)

Что бы вы порекомендовали и почему?

Спасибо!

02.01.2018

  • Важно ли придерживаться 15-минутного интервала? Что делать, если у вас одновременно запущено несколько фоновых заданий? Можете ли вы гарантировать, что только один веб-процесс будет выполнять фоновое задание? Запуск нескольких процессов (возможно, на нескольких серверах) приведет к созданию нескольких фоновых заданий. 02.01.2018
  • Да, это должен быть 15-минутный интервал (подумайте о заказе, который пользователь размещает, но никогда не выполняет. Это нужно как-то очистить). Я считаю, что, делая код правильно, я смогу гарантировать, что один поток работает за раз... 02.01.2018
  • Да, но что, если вам нужно запустить свой код на двух серверах для балансировки нагрузки? Как вы гарантируете, что выполняется только один поток? Как вы справляетесь с проблемами параллелизма? Или это не имеет значения для данной задачи? 02.01.2018
  • Я еще не думал об этом. Я думаю, что мне еще слишком рано думать о решении для балансировки нагрузки на веб-сайт, над которым я все еще работаю, и не уверен, какую нагрузку он получит, но это хороший момент. Если я выполню эту задачу очистки через код веб-приложения, я обязательно приму это во внимание. 02.01.2018

Ответы:


1

ИТ Зависит от требований, требуется ли только очистка данных базы данных или очистка данных cash + db.

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

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

Примечание: задания короны сохраняют следующее расписание и другие сведения в базе данных или файле.

02.01.2018
  • Процесс очистки обновляет некоторые записи базы данных. Очистка кеша не должна происходить. Спасибо 02.01.2018

  • 2

    С помощью Visual Studio создайте консольное приложение, которое будет выполнять необходимые задачи. Создайте консольное приложение. Загрузите файл .exe в планировщик Windows, где вы можете запланировать задачи для регулярного, легкого и надежного выполнения.

    https://www.c-sharpcorner.com/UploadFile/manas1/console-application-using-windows-scheduler/

    02.01.2018
  • Спасибо за ответ, мой вопрос в этом случае будет таким: если я собираюсь использовать решение за пределами моего веб-приложения, зачем создавать другую программу, а не только T-SQL? 03.01.2018
  • @YanivAmrami Программу консольного приложения следует использовать для выполнения команд T-SQL или SQL/хранимых процедур. Это делается для того, чтобы вы могли предоставить планировщику Windows исполняемый файл для надежной работы. 03.01.2018
  • Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

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

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]