Возможно, вы захотите дать Dentist JS взгляд? (отказ от ответственности: я написал код)
код:
document.URL == "http://helloworld.com/quotes?id=1337&author=kelvin&message=hello"
var currentURL = document.URL;
var params = currentURL.extract();
console.log(params.id); // 1337
console.log(params.author) // "kelvin"
console.log(params.message) // "hello"
с Dentist JS, вы можете в принципе вызвать функцию extract () для всех строк (например, document.URL. extract ()), и вы получите HashMap всех найденных параметров. Он также настраивается для работы с разделителями и всеми.
Minified version & lt; 1kb
Несколько лет назад, я видел, что Rob Howard описал способ использовать HttpModule для обработки задач в фоновом режиме. Это не кажется столь же гладким как использование Кэша, но это могло бы быть лучше для определенных обстоятельств.
Это сообщение в блоге имеет детали, и существуют многие другие, которые получают ту же информацию, если Вы озираетесь.
если это - прежде всего, задачи обработки данных, и Вы используете MSSQL, как насчет запланированных задач SSIS?
Можно хотеть посмотреть на то, как DotNetNuke делает это. Я знаю, что это записано в VB.NET, но я модифицировал код в C#. Я просматривал источник и заметил, что у них была функция в их администраторской области для установки запланированных задач. Эти задачи получают настройки через администраторский интерфейс и сохраненный в базе данных. Когда сайт запускается через файл Global.asax, они любой создал другой поток для выполнения этого сервиса, который затем выполняет запланированные задачи в их запланированное время. Я не могу помнить точную логику, это было некоторое время, но это - определенно хороший ресурс о том, как другие люди оставили процессы полосы для Asp. Сетевые приложения. Эта техника все еще сохраняет логику в Asp. Сетевое приложение, но это исчерпывает полосу, по-моему.
Проблема с запланированными задачами или заданиями крона состоит в том, что они не совместно используют пространство памяти с веб-сервером. Вы могли настроить запланированную задачу, которая запросила страницы от веб-сервера, но это могло бы создать проблемы с длительными задачами. Было бы хорошо иметь некоторые низкоприоритетные потоки, работающие на фактическом стеке приложений ASP.NET, чтобы сделать простые служебные задачи как чистка кэшей, контролируя ресурсы, и только иметь дело с общим обслуживанием.
Простые файлы очереди наряду с отдельным агентом. Для каждого типа из процесса полосы пишут отдельный агент .exe, который смотрит каталог за файлами очереди, которые включают любые данные, необходим для выполнения указанного процесса.
Это может казаться грязным, но в реальном мире я нахожу, что он дает большую гибкость, Вы не делаете большой обработки в пространстве процесса ASP.net, и Вы могли легко адаптировать этот стиль для сдавания обработки в аренду к дешевым серверам Linux, работающим на процессе агента, Моно для того, когда Вы начинаете нуждаться в большем количестве RAM/ЦП/диска.
Если Вы являетесь самыми довольными страницами asp.net, можно записать небольшое приложение, чтобы обработать задание и затем "проверить с помощью ping-запросов" приложение с внешним сервисом, который контролирует веб-сайт. Это поддержит приложение.