Нужна ли проверка на количество загруженных систем?
#1

Имеется несколько систем которые при запуске/перезагрузке сервера загружаются из базы данных mysql:
PHP Code:
mysql_function_query(MySQL"SELECT * FROM `houses`"true"LoadHouses","");
mysql_function_query(MySQL"SELECT * FROM `vehicles`"true"LoadVehicles","");
mysql_function_query(MySQL"SELECT * FROM `zone`"true"LoadZone",""); 
При подключении игрока к серверу имеется проверка на статус загрузки сервера:
PHP Code:
/*
 server_access_status = 0; // Загрузка сервера, mysql системы не загружены, kick игрока
 server_access_status = 1; // Сервер загружен, mysql системы загружены, игрок может входить
 server_access_status = 2; // Перезагрузка сервера, mysql системы не загружены, kick игрока
*/
switch(server_access_status)
{
    case 
0:
    {
        
SendClientMessage(playerid, -1,"Происходит загрузка сервера");
        return 
Kick(playerid);
    }
    case 
2:
    {
        
SendClientMessage(playerid, -1,"Происходит перезагрузка сервера");
        return 
Kick(playerid);
    }

После загрузки каждой системы увеличивается переменная server_systems_loaded, и при достижении определенного количества меняется статус сервера, на разрешающий вход. Пробовал входить во время загрузки систем, но после подключения к серверу получал kick:
Quote:

[connection] 127.0.0.1:53542 requests connection cookie.
Kicking 127.0.0.1 because they didn't logon to the game.

Возникает вопрос, нужна ли вообще проверка на количество загруженных систем? Или достаточно после запросов к пабликам с загрузкой менять статус загрузки сервера?
Reply
#2

По мне это какой-то бред, но ты разработчик тебе и решать нужно тебе это или нет.
А вообще правильно делать все эти системы независимыми.
Тогда ошибке в одной из них остальные не отвалятся.
Reply
#3

Quote:
Originally Posted by Stepashka
View Post
По мне это какой-то бред, но ты разработчик тебе и решать нужно тебе это или нет.
А вообще правильно делать все эти системы независимыми.
Тогда ошибке в одной из них остальные не отвалятся.
Благодарю за ответ. Еще один вопрос, из-за чего возникают данные сообщения в логах сервера при загрузке mysql систем?
Quote:

[connection] 127.0.0.1:53542 requests connection cookie.
Kicking 127.0.0.1 because they didn't logon to the game.

Reply
#4

У меня сначала на сервер ставится пароль, затем "системы" загружаются последовательно (это не обязательно), если во время загрузки что-то пошло не так, то сервер выключается. Если успешно загрузилась последняя в цепочке, то пароль снимается. В общем-то ваш подход лучше, я бы только посоветовал ставить на сервер пароль, пока все не загрузится.

Quote:
Originally Posted by Oxsen
View Post
Code:
[connection] 127.0.0.1:53542 requests connection cookie.
Kicking 127.0.0.1 because they didn't logon to the game.
Это частный случай и он не может заменить проверку на загруженность всех "систем". Предполагаю, что что-то фризит сервер в то время, когда игрок подключается. Может полное логирование запросов?
Reply
#5

Quote:
Originally Posted by stabker
View Post
У меня сначала на сервер ставится пароль, затем "системы" загружаются последовательно (это не обязательно), если во время загрузки что-то пошло не так, то сервер выключается. Если успешно загрузилась последняя в цепочке, то пароль снимается. В общем-то ваш подход лучше, я бы только посоветовал ставить на сервер пароль, пока все не загрузится.



Это частный случай и он не может заменить проверку на загруженность всех "систем". Предполагаю, что что-то фризит сервер в то время, когда игрок подключается. Может полное логирование запросов?
Да, с помощью полного логирования запросов, я замедлял загрузку сервера для того чтобы подключиться во время загрузки mysql систем.
Reply
#6

Quote:
Originally Posted by Oxsen
View Post
Да, с помощью полного логирования запросов, я замедлял загрузку сервера для того чтобы подключиться во время загрузки mysql систем.
Значит на сервер просто не получается зайти из-за того, что плагин его временно замораживает своими операциями.
Reply
#7

Загружай дома, бизнесы и тд в OnGameModeInit без потока обычным mysql_query, во время загрузки никто зайти и так не сможет, займет эта загрузка секунд 2-4. Ну конечно если ты рестартишь сервер не по 2 раза в полчаса, а как все каждый раз в 5 утра, то ты ничего не потеряешь. Не вижу смысла городить какие-то костыли.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)