Приоритет в заданиях

  • Автор темы Автор темы malexoid
  • Дата начала Дата начала

malexoid

A-Parser Enterprise License
A-Parser Enterprise
В найстройках задания есть такой параметр как приоритет - на что он влияет? пока я не увидел разницу межну заданием с максимальным и минимальным приоритетом.
Я думал это работает примерно так (хочется такую логику работы):
1. Предположим, что максимальное активное число задний - 1
2. Добавлением задание в очередь с самым низким приоритетом (LOW) - оно начивается выполняться.
3. Добавляем другое задание в очередь, но уже с высоким приоритетом (HIGH), и вот тут по идеи должно происходить следующее: задание, которое до это выполнялось с низким приоритеом - уходит в waiting (т.е. ставится на паузу), и начинает выполняться новое задание с высоким приоритетом.

Такая схема, например, позволит более стабильно реализовать запуск заданий по рассписанию, когда нужно, чтобы задание запускалось строго раз в определенное время и ему не мешали задания, которые могут висеть и выполняться несколько дней подряд.
 
Цитата из Документации (https://a-parser.com/wiki/add-task/#Опции):
Приоритет - задания с большим приоритетом будут получать потоки сразу после завершения каждого запроса у заданий с меньшим приоритетом. Особенности:
  • Если у заданий приоритет одинаковый то преимущество отдается заданию которое было раньше добавлено по времени;
  • Работает только с динамическим лимитом потоков;
Описание логики работы Динамического лимита: https://a-parser.com/threads/2726/
 
Цитата из Документации (https://a-parser.com/wiki/add-task/#Опции):

Описание логики работы Динамического лимита: https://a-parser.com/threads/2726/
Спасибо за инфу!
У меня версия 1.2.253, и если в настройках максимальное число активных заданий = 1, то алгоритм с приоритетами не работает.
т.е запускается задание с низким приоритетом, работает, потом добавляется еще одно задание но с высоким приоритетом и ждет (wait slot), не запускается...
 
Приоритеты работают только с Динамическим лимитом потоков, который в свою очередь работает в рамках Максимума активных заданий.
Другими словами, переход потоков от задания с низким приоритетом к заданию с более высоким осуществляется только между работающими (состояние work) заданиями. При этом те, которые ожидают рабочий слот, - не будут получать потоки, даже если у них более высокий приоритет.
Решение - увеличить Максимум активных заданий.
 
Назад
Верх