Поток



  • Привет всем!
    Можно ли как-то включить режим многопотока только после выполнения условия?
    Например, в 1 потоке заходим на сайт и грабаем всех пользователей.
    Потом делим кол-во пользователей на кол-во потоков и уже под каждым потоком логинимся и отправляем сообщения для своей части пользователей.
    Т.е. сперва работаем только в 1 потоке, а после граба пользователей врубаем многопоток и выполняем для каждого свои задачи.
    @support, такое возможно?



  • @mardoksp Сейчас можно парсить пользователей в OnApplicationStart потом будут этапы выполнения каждый со своими настройками.



  • @support А как указать кол-во потоков из переменной?

    Ну допустим я в OnApplicationStart считаю кол-во пользователей. А потом уже, исходя из этого кол-ва, я указываю необходимое кол-во потоков.
    Например, у нас есть 100 тысяч пользователей. Допустим, я считаю на 1 поток одну тысящу пользователей. Получается 100 потоков. Я оставлю шаблон работать круглые сутки. Он будет сканить онлайн каждый час. Допустим новых добавилось 200. Запускать это на 100 потоков нет смысла, поэтому если меньше тысячи, то делать все в 1 поток.
    Я думал в OnApplicationStart просчитать и указать в переменную кол-во потоков, но там можно указать только ресурс. Как быть с переменной?

    Остается только идея, просчитать сперва кол-во потоков, записать в файл, а потом уже указать ресурс файла. Из файла работает ок. Если в переменную нельзя, то будем через файл.



  • @mardoksp Вроде потоки мало занимают, если ничего не делают. Можно 100 потоков запускать, проверять в них количество пользователей, и в зависимости от количества уже выполнять на потоке действия. А остальные потоки пока ожидать будут.



  • @blackhacker Да я пока решил сделать через ресурс.
    Добавлю ресурс на ссылку на файл. В стартовой функции сделаю все операции и посчитаю нужное кол-во потоков и результат запишу в этот файл. А кол-во потоков укажу как ресурс.
    Только что проверил - все ок :)



  • @mardoksp После сервиса сделаю поддержку нескольких этапов выполнения скрипта, там это будет.


Log in to reply