Всем доброго времени суток. Сейчас в настройках можно задать настройку "выполнять не более N тасков одновременно", благодаря чему работает очередь. Есть идея сделать аналог, но в потоках: "выполнять не более N потоков одновременно". Т.е. если на каком-то таске осталось пару долгих потоков из тысячи, то освободившиеся девятьсот потоков можно запустить в соседнем таске и по мере освобождения потоков добавлять лимит. Форб, здравая идея?
с точки зрения запуска следующего задания в процессе завершения предыдущего - не совсем, т.к. заданию могут понадобиться все потоки(например при многоуровневом парсинге) с целью запуска нескольких заданий с разным числом потоков с общим лимитом в N - вполне возможно это будет удобно
Сегодня подумал о такой фиче. Это не просто удобно, а необходимо. В частности, сейчас у меня не так много заданий, поэтому я купил всего 20 потоков. Итого, одновременно у меня может выполняться по 3 задания по 6 потоков, + проверка проксей - 2 потока. Но бывает такое, что при старте парсеров забывается поставить нужное кол-во потоков, в результате чего, задания отрабатывают с серьезными глюками (собирается только малая часть данных). Нужно сделать настройку, ограничивающую не только кол-во одновременных заданий, но и кол-во одновременных потоков. И, если, очередное задание не укладывается в общий лимит, оно ждет своей очереди. Например: задание 1 - 5 потоков задание 2 - 14 потоков задание 3 - 5 потоков Лимит 20 потоков. Получаем, что работать должны задания 1 и 2, а задание 3 должно ждать очереди. Да, и не забыть учесть еще и потоки выделенные для проксичекера.