Долгосрочные SQL Серверные отчеты, как их запускать в асин c режиме - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть несколько долго работающих SQL Серверных отчетов, которые запускаются в течение 10+ минут. Как я могу запустить их в асинхронном режиме c, в котором они запускаются, и затем предупредить пользователей, что он доступен.

Я использую SQL Server 2014 и отчеты запускаются. NET приложение в средстве просмотра отчетов с отчетами / RDL C. Я готов изменить приложение, но не могу переписать сотни отчетов и запросов. Запросы оптимизированы, так что теперь осталось только сделать это ASyn c.

1 Ответ

0 голосов
/ 30 апреля 2020

Вы можете использовать некоторые Pub / Sub или фоновые задания на стороне сервера, например, вы можете использовать HangFire , чтобы запланировать фоновое задание (вычисление вашего отчета), затем, когда задание будет готово. вам нужно как-то передать вычисленные данные со стороны сервера на сторону клиента, для этого вам необходимо в продолжение задания указать, как это будет сделано, например, это можно сделать с помощью SignalR

Если вам не нужен какой-либо сторонний поставщик, это будет немного сложнее, например, вы можете написать собственный Pub / Sub на основе каналов или BlockingCollection или что угодно. Затем на стороне клиента вам понадобится какое-то длинное вытягивание с использованием AJAX запросов или просто WebSockets, чтобы получить данные с сервера, когда он будет готов.

...