Запуск шаблона по расписанию многопоточно, но по очереди

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
67
Благодарностей
2
Баллы
8
Здравствуйте , мне нужно запустить шаблон по расписанию, в несколько потоков (10 потоков). Сам шаблон выполняет функцию get запроса из API и если там появились новые, не обработанные элементы, он их начинает обрабатывать и в конце меняет статус элемента с Новый на Выполнен (обработка одного элемента может занимать до 30 минут).

Если запустить многопоток (10 потоков) + расписание, с интервалом 1 минута - будут каждую минуту запускаться 10 потоков, если API в эту какую-то минуту выдаст 3 элемента, то все 10 потоков, каждый возьмет по 3 новых элемента и будут их одновременно выполнять - а должны выполнять по очереди 1ый поток = 1ый элемент, 2ой поток = 2ой элемент, 3ий поток = 3ий элемент, 4-10 - заканчивают проверку, потому как не найдено новых элементов, для них не найдено .

Единственное решение для такой ситуации было найдено : после взятия потоком нового элемента в обработку, сразу менять статус на выполнен, что бы другие потоки их не подхватывали повторно. Но как заставить потоки запускаться по очереди - понять никак не могу? Например: я выставил паузу в 20 секунд, далее первый шаблон успел гетнуть и запостить измененный статус, и потом все последующие потоки не видели предыдущий элемент как требуемый к обработке.
 

kagorec

Client
Регистрация
24.08.2013
Сообщения
1 050
Благодарностей
571
Баллы
113
Пробуйте через sqlite распределять потоки, со статусом
 

TeslaCo

Client
Регистрация
25.10.2016
Сообщения
67
Благодарностей
2
Баллы
8

Dr.Pipetka

Client
Регистрация
12.12.2017
Сообщения
1 360
Благодарностей
901
Баллы
113
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)