PDA

Просмотр полной версии : [Вопрос] Таймеры



miron.prod
23.10.2020, 05:59
Доброго времени суток. Много всего уже прочёл про таймеры, о том, какие использовать лучше (глобальные или индивидуально для каждого игрока), мнений множество. Но повис один вопрос, если к примеру при запуске сервера запускаем таймер без повторения, который сработает 1 раз через 3 часа, ещё где то, в какой то из систем запустим таймер без повторения, который сработает 1 раз через 5 часов, и так далее, а если таких таймеров будет 100, 1000 или же больше, как скажется это на работе сервера? Если например для игрока запускать так несколько таймеров, которые сработают через 20 минут, час или более (соответственно больше игроков - больше и таймеров).
Я так же понимаю, что нагрузку даёт не сам таймер, а код в нём (например в каждом таймере просто сообщение пользователю), но всё же, как сервер будет себя вести в данной ситуации или всё будет в порядке?

SteveStage
23.10.2020, 15:11
Доброго времени суток. Много всего уже прочёл про таймеры, о том, какие использовать лучше (глобальные или индивидуально для каждого игрока), мнений множество. Но повис один вопрос, если к примеру при запуске сервера запускаем таймер без повторения, который сработает 1 раз через 3 часа, ещё где то, в какой то из систем запустим таймер без повторения, который сработает 1 раз через 5 часов, и так далее, а если таких таймеров будет 100, 1000 или же больше, как скажется это на работе сервера? Если например для игрока запускать так несколько таймеров, которые сработают через 20 минут, час или более (соответственно больше игроков - больше и таймеров).
Я так же понимаю, что нагрузку даёт не сам таймер, а код в нём (например в каждом таймере просто сообщение пользователю), но всё же, как сервер будет себя вести в данной ситуации или всё будет в порядке?

Все будет в порядке, не беспокойся. Нагрузка на сервер безусловно будет, но в пределах разумного. Например система голода - для 1000 игроков вызывается таймер с частотой вызова 1 секунда - и все нормально.

DeimoS
23.10.2020, 15:26
Каждый таймер отъедает определённое количество оперативной памяти, но, в целом, их спокойно можно несколько десятков тысяч создать.

Ну и переживать не стоит: если вдруг с количеством таймеров переборщишь - сервер сообщит об этом, крашнувшись :) Но на моей памяти краш от количества таймеров получалось получить только синтетическими тестами (когда просто циклом создавал кучу таймеров, пока сервер не крашился).

miron.prod
23.10.2020, 17:59
А насколько стоит использовать сторонние реализации таймеров в плагинах? Такие как TimerFix например
Тестировал плагин от KashCherry, и вроде бы сервер падал при "долгих" таймерах, раз в 40 минут сервер падал в краш

DeimoS
23.10.2020, 18:34
Потому что плагин от KashCherry нестабилен. Лучше использовать плагин от udan11 (https://github.com/udan11/samp-plugin-timerfix).
Использовать такой плагин стоит. Он и некоторые баги исправляет, связанные с таймерами, и их точность улучшает.

miron.prod
23.10.2020, 19:32
Странно, но при подключении данного плагина - сервер вообще не запускается.


[18:30:11] [debug] Run time error 19: "File or function is not found"
[18:30:11] [debug] IsValidTimer
[18:30:11] [debug] Run time error 19: "File or function is not found"
[18:30:11] [debug] IsValidTimer

DeimoS
23.10.2020, 20:05
Перепроверяй, отключил ли инклуд от старого плагина.

miron.prod
23.10.2020, 20:07
Подключен инклуд именно от этого плагина, версии 1.5

DeimoS
23.10.2020, 20:09
Ну значит плагин не заменил, оставив прежний?

miron.prod
23.10.2020, 20:12
Loading plugin: timerfix.so
>> TimerFix v1.5 successfully loaded.
Loaded.

Kovshevoy
23.10.2020, 23:05
Потому что плагин от KashCherry нестабилен. Лучше использовать плагин от udan11 (https://github.com/udan11/samp-plugin-timerfix).
Использовать такой плагин стоит. Он и некоторые баги исправляет, связанные с таймерами, и их точность улучшает.
Лучше бы сбросил форк от ziggi (https://github.com/ziggi/samp-plugin-timerfix), он апдейтит этот плагин, и там была ошибка касемо IsValidTimer которую он исправил в 1.7. Сам юзаю, и Всем рекомендую.
От КешКерри (ы) плагин действительно не стабилен и моментами странно себя ведёт, поэтому возвращался на доисторическую версию Юдана, пока не увидел форк пингвина, который, кстати, не так давно обновился, что не может не радовать.

miron.prod
24.10.2020, 01:03
Лучше бы сбросил форк от ziggi (https://github.com/ziggi/samp-plugin-timerfix), он апдейтит этот плагин, и там была ошибка касемо IsValidTimer которую он исправил в 1.7. Сам юзаю, и Всем рекомендую.
От КешКерри (ы) плагин действительно не стабилен и моментами странно себя ведёт, поэтому возвращался на доисторическую версию Юдана, пока не увидел форк пингвина, который, кстати, не так давно обновился, что не может не радовать.

Спасибо большое, поставил, буду смотреть/тестировать.