Общий счетчик для всех потоков

perioh

Client
Регистрация
14.09.2016
Сообщения
28
Благодарностей
6
Баллы
3
Всем привет. Есть сайт и задача - перебрать все страницы типа index.php?id=x, где x - целое число, в многопотоке и на запросах.
Сейчас это реализовано через файл counter.txt в папке проекта, в котором написано число. Каждый новый инстанс берет число из файла и прибавляет к нему 1. Но сейчас, при работе в 400 потоков, проект заметно тормозит и сервер не использует свою полную мощность (при 200 и 400 потоках скорость одинакова, сервер не нагружен даже на 10%)
Как лучше всего реализовать этот счетчик? Глобальные переменные не подходят, т.к. удаляются после перезагрузки зп
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Глобальные переменные не подходят, т.к. удаляются после перезагрузки зп
Задаёте глобальную переменную и +1 к ней. При перезагрузке ничего удаляться не будет, вы её задаёте константой.
 

perioh

Client
Регистрация
14.09.2016
Сообщения
28
Благодарностей
6
Баллы
3
Задаёте глобальную переменную и +1 к ней. При перезагрузке ничего удаляться не будет, вы её задаёте константой.
Инфа из зенно вики
  • Несмотря на то, что это глобальные переменные, они все же создаются в вашем проекте, а не в самом ZennoPoster. Т.е. глобальная переменная создается, когда ваш проект первый раз к ней обращается. А ее значение пропадает после перезагрузки ZennoPoster.
Проверил на практике, действительно при перезапуске переменная обнуляется
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
Создали переменную на старте и работаете. Или вам требуется постоянно её изменять при новом старте?
 

perioh

Client
Регистрация
14.09.2016
Сообщения
28
Благодарностей
6
Баллы
3
Создали переменную на старте и работаете. Или вам требуется постоянно её изменять при новом старте?
парсинг займет не один день, и возможен перезапуск зп. Нужно более универсальное решение
 

budora

Client
Регистрация
13.08.2012
Сообщения
831
Благодарностей
556
Баллы
93
При перезапуске меняйте в ручную. Зачем себе огород городить
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113

ezotarget

Новичок
Регистрация
18.12.2018
Сообщения
2
Благодарностей
0
Баллы
1
При перезапуске меняйте в ручную. Зачем себе огород городить
Обращаюсь к Budora, есть предложение по сотрудничеству, после прочтения: https://zennolab.com/discussion/threads/kak-70-gadalok-ustroilis-k-usmanovu-v-mejl-ru.41526/
Скажите пожалуйста как с вами связаться? или свяжитесь со мной: [email protected]
Надеюсь ответите, до скорой связи.
 

perioh

Client
Регистрация
14.09.2016
Сообщения
28
Благодарностей
6
Баллы
3
Пишите значение в файл.
В стартпосте написано, что и так идет работа через файл
Скорости не хватает, хочется еще больше потоков. Машина позволяет, шаблон - нет
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
В стартпосте написано, что и так идет работа через файл
Скорости не хватает, хочется еще больше потоков. Машина позволяет, шаблон - нет
Создайте рамдиск (ramdisk) и храните счетчик там, синхронизируя, время от времени.
Хотя, по факту, глобалки с периодическим сохранением в файл дадут тот же результат.
 

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