Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 4 из 4
  1. #1
    Аватар для Glant
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.07.2014
    Сообщений
    54
    Репутация:
    3 ±

    mysql_query или mysql_function_query

    Перевел мод на MySQL R9-3, и использовал запросы как с "Cache:result = mysql_query и cache_delete() после запроса", и так и "mysql_function_query" с передачей на другой коллбек". Юзал тот или иной способ по случаю, когда как удобно.
    Можно ли так делать, или же нужно использовать только один способ mysql запросов?

    Может ли это быть связано с тем, что сервер после старта работы держится час с лишним, а потом тупо "встает", т.е в браузере сампа сервер как бы работает (пинг есть, список игроков), но на самом деле все игроки вылетели, и никто не может зайти.
    Последний раз редактировалось Glant; 12.11.2015 в 21:15.

  2. #2
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    cache:
    Процедурное программирование
    mysql_function_query:
    Асинхронное программирование.

    Виснуть - может. Выбор за Вами. Суть асинхронного программирование, то что код не ждет пока завершиться выполнение каких либо функции. Он сразу выполняет код.
    Процедурное программирование - все идет друг за другом, то есть если есть какая то функция: func_one и func_two, и из какого то участка кода вызвали func_one, а потом func_two, то func_two не начнет работать, пока не завершиться выполнение func_one.



    SA-MP же однопоточен (процедурное программирование), стоит ли использовать cache?
    Конечно, нет. Если есть такая возможность в SA-MP, использовать многопоточный плагин - то лучше использовать его.
    Запросы будут выполнятся в отдельном потоке от функции Pawn
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

  3. #3
    Аватар для Glant
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.07.2014
    Сообщений
    54
    Репутация:
    3 ±
    Замораживание сервера вполне может быть связано с использованием Cache?

    А как же тогда обходились сервера с MySQL до появления многопоточных возможностей плагина?
    Просто я видел множество модов, где используется только Cache.
    Последний раз редактировалось Glant; 13.11.2015 в 00:27.

  4. #4
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,192
    Репутация:
    2589 ±
    Немного перефразирую предыдущий ответ. Запросы, совершаемые через mysql_query, являются блокирующими операциями, т.е. выполняются в главном потоке и сервер вынужден ждать, пока он выполнится, прежде чем сделать что-то ещё. Такие задержки иногда отражаются на геймплее, когда другие игроки не движутся плавно, а зависают на короткий момент, дёргаются, и т.д. и т.п.
    Если же взять асинхронный запрос (mysql_function_query), то сервер не ждёт, пока такой запрос выполнится, и может заниматься другими делами. Как только запрос выполнится, вызовется нужный коллбэк и можно будет обрабатывать результаты запроса. Иными словами, асинхронные запросы не являются блокирующими.

    Цитата Сообщение от Glant Посмотреть сообщение
    Замораживание сервера вполне может быть связано с использованием Cache?
    Могут быть тысячи причин, по которым сервер может зависнуть. Лучше всего, если онлайн на сервере небольшой, использовать плагин Profiler, я как раз выложу днём перевод статьи с sa-mp.com по этому плагину.


    Цитата Сообщение от Glant Посмотреть сообщение
    А как же тогда обходились сервера с MySQL до появления многопоточных возможностей плагина?
    Просто я видел множество модов, где используется только Cache.
    Очевидно, что так и делали моды с небольшими лагами при каждом запросе.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •