Я реализовал службу Windows с очередью, которая хранится в таблице базы данных.Высокий CPU, когда очередь обслуживания Windows хранится в базе данных
У меня есть таблица под названием MyQueue
, и каждая строка этой таблицы задает задачу для службы Windows. Когда задача завершена, строка помечена специальным флагом, что означает, что эта задача выполнена.
My Windows работает следующим образом:
while(true)
{
// get the first row from MyQueue that is not yet marked
// complete the task from the row
// mark the row as completed
}
Этот дизайн-работ, но, как я использую while(true)
он постоянно отправляет запросы в базу данных, чтобы проверить, есть ли какие-либо новые строки, и это вызывает использование процессора для выше 60%.
Есть ли более эффективный способ реализации очереди, хранящейся в таблице базы данных?
Что добавляет строки в MyQueue? Можете ли вы также предупредить о своем обслуживании? –