Я работаю над приложением, в котором связаны тысячи задач
с сотнями устройств, для каждой из которых требуется <5 мсек, чтобы начать выполнение, и
в среднем требуется 100 мс. </p>
Условия таковы:
- Каждое устройство может обрабатывать только один
задача за один раз, например, одна задача должна завершиться на назначенной ей
устройство до обработки последующей задачи.
- Планировщик должен быть работоспособным. В настоящее время обработка данного устройства
рабочая очередь занимает больше времени, чем сумма ее задач.
Вот базовое описание текущей реализации:
Каждое устройство содержит рабочую очередь, которая заполнена задачами, связанными с
это устройство.
Когда задача ставится в очередь, рабочая очередь этого устройства помещается в
глобальная очередь выполнения (очередь из очереди). Глобальная очередь выполнения используется рабочим потоком
который снимает с объекта объекты задачи устройства, обрабатывает один, затем помещает
очередь устройств в задней части глобальной очереди выполнения. Когда это данное устройство
снова отключен, рабочий поток проверяет, завершена ли задача,
если это так, следующая задача выполняется. Этот процесс продолжается, пока все очереди устройства
были исчерпаны задачи в глобальной очереди выполнения.
Есть предложения по улучшению? Я ясно сказал это? Если нет, пожалуйста, дайте мне знать, и я сделаю все возможное, чтобы уточнить.
Спасибо, что нашли время, чтобы просмотреть это. Привет.