Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Падет сервер cs.

, mysql
Статус пользователя igor_ok
сообщение 26.1.2014, 18:12
Сообщение #1
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Может у кого-то будет похожее вот решение:

Добавил после каждого запроса
Код:
SQL_FreeHandle(SqlConnection)
SQL_FreeHandle(Query)



Код:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <sqlx>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

new Handle:g_SqlTuple ,g_Error[81];
new ErrorCode,shost[64],suser[64],spassword[64],sbd[64],stable[64]
new table

public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
table = register_cvar("table","amx_amxadmins")
set_task(0.5, "sql_init_h")
}

public sql_init_h(){
get_cvar_string("amx_sql_host",shost,63);
get_cvar_string("amx_sql_user",suser,63);
get_cvar_string("amx_sql_pass",spassword,63);
get_cvar_string("amx_sql_db",sbd,63);
get_pcvar_string(table,stable,63);
g_SqlTuple = g_SqlTuple = SQL_MakeDbTuple(shost,suser,spassword,sbd);
return 1;
}

public client_putinserver(id)
{
new name[40]
get_user_name(id,name,sizeof(name))
new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT * FROM %s WHERE nickname = '%s';",stable,name)
if(!SQL_Execute(Query)){
SQL_QueryError(Query,g_Error,511)
log_amx(g_Error)
}
if( SQL_NumResults(Query) > 0){
update(id)
}
}

public update(id)
{
new name[40]
get_user_name(id,name,sizeof(name))
new Handle:SqlConnection = SQL_Connect(g_SqlTuple,ErrorCode,g_Error,511)
new Handle:Query = SQL_PrepareQuery(SqlConnection,"UPDATE `%s` SET `lastlogin`='%d' WHERE nickname = '%s' ",stable,get_systime(),name)
SQL_Execute(Query)
}


Решил сделать страницу, на которой показывает последнее посещение админов сервера. Запись идет в таблицу amxbans, но заметил что сервер стал на много чаще падать, раньше 1, максимум 2 раза в день, а теперь раз 10, и не поднимается(используется автоподнималка).
Да и вообще сервера,на которых стоят мои mysql плагины чаще остальных падают. Может что-то не так делаю? Могу передоставить metalist и pluginlist

Отредактировал: igor_ok, - 29.1.2014, 9:53


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя mazdan
сообщение 26.1.2014, 19:10
Сообщение #2


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

Ну не удивительно по каждому игроку синхронный запрос делать.... Я бы тоже упал при смене карты от 10-20 запросов таких.
Если хотите оставить синхронный, то лучше слать только если админ сервере (типа после проверки is_user_admin ) а лучше по форварду амхбанса


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 26.1.2014, 19:26
Сообщение #3
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Плохо описал ситуацию, на проекте присутствует функция регистрация ника, т.е в таблице админов amxbans не только админы, но и игроки которые зарегистрировали ник(у них флаг z), появилась нужда удалить не используемые ники, за 7 лет их накопилось достаточно(около 1000), поэтому я сделал так:

Код:
 new Handle:Query = SQL_PrepareQuery(SqlConnection,"SELECT * FROM %s WHERE nickname = '%s';",stable,name)


Если ник игрока присутствует в таблице, то выполняем обновление даты последнего посещения через паблик update.
Сделать через is_user_admin не получится, так как игрок с флагом z не является админом.

Отредактировал: igor_ok, - 26.1.2014, 19:28


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 26.1.2014, 19:41
Сообщение #4


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

тогда форвард amxbans + два запроса в один можно + можно асинхронно + можно в сам amxbans вставить


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 26.1.2014, 19:58
Сообщение #5
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Цитата(mazdan @ 26.1.2014, 19:41) *
тогда форвард amxbans + два запроса в один можно + можно асинхронно + можно в сам amxbans вставить


С таким подходом падения прекратятся?


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 26.1.2014, 19:59
Сообщение #6


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

снизиться вероятность должна


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 26.1.2014, 20:03
Сообщение #7
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Еще я заметил, что забыл приписать
Код:
SQL_FreeHandle(SqlConnection)

Это могло повлиять?


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mazdan
сообщение 26.1.2014, 20:04
Сообщение #8


Иконка группы

Стаж: 15 лет

Сообщений: 7566
Благодарностей: 5437
Полезность: 1305

igor_ok, да, там шаг влево - расстрел


Не пишите мне в ЛС. Пишите на почту. В ЛС я пропускаю сообщения.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 26.1.2014, 20:10
Сообщение #9
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Цитата(mazdan @ 26.1.2014, 20:04) *
igor_ok, да, там шаг влево - расстрел


Спасибо, попробую отпишусь.


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя igor_ok
сообщение 29.1.2014, 9:53
Сообщение #10
Стаж: 15 лет
Город: Донецк

Сообщений: 267
Благодарностей: 89
Полезность: 239

Может у кого-то будет похожее вот решение:

Добавил после каждого запроса
Код:
SQL_FreeHandle(SqlConnection)
SQL_FreeHandle(Query)


PPC-ZONE
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: