создать очередь процесса в классическом asp - PullRequest
2 голосов
/ 19 апреля 2010

вот проблема: есть классическое приложение asp, которое вызывает lame.exe для кодирования mp3s много раз в день и нет никакого контроля над способом вызова lame.exe от нескольких пользователей, другими словами, для этой цели нет очереди. так вот о чем я думаю:

//below code all are pseudo-code
//process_flag and mp3 and processId all are reside in a database

function addQ(string mp3)
add a record to database 
and set process_flag to undone
then goto checkQ
end function

function checkQ()
if there is a process in queue list and process_flag is undone
sort in by processID asc
for each processID
    processQ(processID)
end for
end function

function ProcessQ(int processID)
run lame.exe with the help of wscript.exe
after doing the job set the process_flag to done
end function

так что я просто хочу знать, есть ли лучшее решение? или какие-то другие подходы там?

С уважением.

Ответы [ 2 ]

1 голос
/ 19 апреля 2010

Это идеальное приложение для MSMQ. Позвольте проверенному коду управлять надежным обменом сообщениями, контролем параллелизма и т. Д., Чтобы вы могли просто сосредоточиться на логике приложения.

1 голос
/ 19 апреля 2010

Выглядит как разумный подход для классического осина.

Просто убедитесь, что в вашей функции checkQ вы извлекаете только те элементы очереди, для которых process_flag установлено в undone, или вы, возможно, пытаетесь обрабатывать одни и те же элементы снова и снова.

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

...