Поток
-
Привет всем!
Можно ли как-то включить режим многопотока только после выполнения условия?
Например, в 1 потоке заходим на сайт и грабаем всех пользователей.
Потом делим кол-во пользователей на кол-во потоков и уже под каждым потоком логинимся и отправляем сообщения для своей части пользователей.
Т.е. сперва работаем только в 1 потоке, а после граба пользователей врубаем многопоток и выполняем для каждого свои задачи.
@support, такое возможно?
-
@mardoksp Сейчас можно парсить пользователей в OnApplicationStart потом будут этапы выполнения каждый со своими настройками.
-
@support А как указать кол-во потоков из переменной?
Ну допустим я в OnApplicationStart считаю кол-во пользователей. А потом уже, исходя из этого кол-ва, я указываю необходимое кол-во потоков.
Например, у нас есть 100 тысяч пользователей. Допустим, я считаю на 1 поток одну тысящу пользователей. Получается 100 потоков. Я оставлю шаблон работать круглые сутки. Он будет сканить онлайн каждый час. Допустим новых добавилось 200. Запускать это на 100 потоков нет смысла, поэтому если меньше тысячи, то делать все в 1 поток.
Я думал в OnApplicationStart просчитать и указать в переменную кол-во потоков, но там можно указать только ресурс. Как быть с переменной?Остается только идея, просчитать сперва кол-во потоков, записать в файл, а потом уже указать ресурс файла. Из файла работает ок. Если в переменную нельзя, то будем через файл.
-
@mardoksp Вроде потоки мало занимают, если ничего не делают. Можно 100 потоков запускать, проверять в них количество пользователей, и в зависимости от количества уже выполнять на потоке действия. А остальные потоки пока ожидать будут.
-
@blackhacker Да я пока решил сделать через ресурс.
Добавлю ресурс на ссылку на файл. В стартовой функции сделаю все операции и посчитаю нужное кол-во потоков и результат запишу в этот файл. А кол-во потоков укажу как ресурс.
Только что проверил - все ок :)
-
@mardoksp После сервиса сделаю поддержку нескольких этапов выполнения скрипта, там это будет.