Вопросы, советы, возможные модификации и вообще все про модуль статистики кланов

Модератор: Exinaus, shw

#8589 Exinaus 08 окт 2012, 14:17
Действительно, зачем же смотреть настройки в панели управления, в разделе случайно называющемся "Базы данных MySQL"?
Можно же попробовать подставлять любые случайные адреса В НАДЕЖДЕ ЧТО Я УГАДАЮ.
А если я не угадаю, написать на форуме скрипта что он не работает. Ну правильно, это же они виноваты что я не в состоянии найти усердно спрятанную от меня информацию. А ведь раньше все получалось, угадывал за 10 минут.

Вот, надеюсь заметите, я стрелочкой показал где смотреть.
Изображение
#8592 Jokerrrrr 08 окт 2012, 14:30
Парни, хоть у кого-то сейчас работает статистика? Долгие пляски с бубном, куча способов. В итоге более 15 человек так и не обновляется. :(
#8595 shw 08 окт 2012, 15:20
Jokerrrrr писал(а):Парни, хоть у кого-то сейчас работает статистика? Долгие пляски с бубном, куча способов. В итоге более 15 человек так и не обновляется. :(

Работает конечно, иначе бы тут такой вайн подняли =)
патч ставил с первого поста:
viewtopic.php?f=30&t=3350#p8185
? кэш после этого чистил?
если ленива или не получается - могу посмотреть и сделать за Вас =)
только доступ надобно. (В ЛС пиши, если что)
#8597 MadPaul 08 окт 2012, 15:40
Уважаемые разработчики модуля.
Прошу пояснить алгоритм сбора статистики - у меня cron настроен собирать стату в 0000 по времени Владивостока (ну живу я здесь, чоужтам). Ранее (в старой версии модуля) были замечены следующие моменты - если ко времени обновления статистики ты не вышел из игры, то вся стата плюсуется к активности на следующие сутки. Теперь все как то совершенно иначе - не могу уловить закономерность, но количество боев явно показывает не за сутки ("специально" сутки не играл), новые машины у игроков тоже показывает за сутки-двое.
Вопрос - что сделано не так и как сделать так, чтобы показывалось все за сутки (без учета "хотелок", чтобы можно было выбирать период отображения).
Заранее спасибо.
#8599 shw 08 окт 2012, 15:54
MadPaul писал(а):Уважаемые разработчики модуля.
Прошу пояснить алгоритм сбора статистики - у меня cron настроен собирать стату в 0000 по времени Владивостока (ну живу я здесь, чоужтам). Ранее (в старой версии модуля) были замечены следующие моменты - если ко времени обновления статистики ты не вышел из игры, то вся стата плюсуется к активности на следующие сутки. Теперь все как то совершенно иначе - не могу уловить закономерность, но количество боев явно показывает не за сутки ("специально" сутки не играл), новые машины у игроков тоже показывает за сутки-двое.
Вопрос - что сделано не так и как сделать так, чтобы показывалось все за сутки (без учета "хотелок", чтобы можно было выбирать период отображения).
Заранее спасибо.

Хех, а никто не говорил, что эта инфа за сутки дается =)
в штатном исполнении main.php данные поступают за 2 суток. (вроде).
что бы показывал именно сутки в main.php заменить соответствующий абзац на:
Код: Выделить всё            $we_loosed = went_players($roster,(now() - 86400),now());
            $new_players = new_players($roster,(now() - 86400),now());
            $main_progress = player_progress_main((now() - 172800),now());
            $best_main_progress = best_player_progress_main($main_progress);
            $medal_progress = medal_progress((now() - 172800),now());
            $best_medal_progress = best_medal_progress($medal_progress['unsort']);
            $new_tanks = new_tanks($roster,$col_tables,(now() - 172800),now());

После того, как обновишь сайт статистики, увидишь необходимые изменения.
#8600 Exinaus 08 окт 2012, 16:37
MadPaul писал(а):если ко времени обновления статистики ты не вышел из игры, то вся стата плюсуется к активности на следующие сутки.

Это не особенность модуля, это особенность конструкции/иерархии/построения игровых серверов в каждой онлайн игре.
В серверной архитектуре каждой онлайн мморпг сейчас есть кэширующий сервер, часто даже не один. В крупных мморпг кэширующие сервера могут быть установлены не только для сервера, но и для крупного города, густонаселенной локации, системы данженов, отдельного большого данжена. Такие сервера специально создаются для снятия нагрузки с основных серверов, хранящих данные о игроке. Дабы обмен информацией не нагружал основной сервер кучей мелких транзакций. Они работают по такому принципу: когда игрок заходит в игру - все его данные загружаются с основного сервера в кэширующий. И во время игры, все достижения, весь полученный "лут" сохраняются именно в кэширующем сервере. Когда игрок выходит из игры (закрывает клиент, падает интернет) все данные с кэширующего сервера переносятся на основной.
Именно по этому при незапланированных падениях теряются данные - кэширующий сервер не успел перенести данные в основную базу. Ну и плюс зависит как реализован кэширующий сервер, в виде динамического хранилища данных (по типу операционной памяти, выключил сервер - все данные исчезли, используются в высоконагруженных серверах, т.к. потребляют меньше ресурсов для работы), либо некое хранилище данных (тогда даже при падении можно восстановить часть или даже весь утерянный кэш, но требуют намного больше ресурсов), или их комбинация.
Точно так же и в танках, пока вы не выходите из игры, все достижения за день/вечер не записываются в основной сервер. А все вэб сайты, работающие с вашими данными (модуль статистики, бронесайт, сайты генерации сигнатур и пр.) от варгейминга получают данные из основной базы.
Вот и получается что в основную базу ваши достижения попадают после сбора данных модулем. А т.к. модуль сравнивает текущие данные на момент сбора статистики и данные с последнего сбора, вот получается такая штука.
Поэтому оптимально настраивать крон на сбор статистики в 3-4 часа ночи, когда в онлайн в клане - максимум пару задротов.
#8602 VecH 08 окт 2012, 20:28
shw писал(а):
VecH писал(а):Напомните пож. где посмотреть где и какие гайки закрутили WG для запроса данных по API ?
Я кажется понял почему у меня некоторые игроки не обновляются, cron-ом срабатывает в одно время запрос на статистику двух кланов с одного сервера/IP адреса

Хочу с источника прочитать и настроить время запуска cron-а

Да читать особо и нечего. Все было найдено опытным путем. С WG "за раз" подгрузить более 15 профилей через api не удавалось, Поэтому был написан патч, разделяющий запрос на несколько частей. Да, вполне может быть, что WG ограничивает количество запросов в секунд с одного IP адреса.
Отпишитесь по результатам смены времени cron на одном из Ваших сайтов.

На своем хосте держу две статы, разбросал в crontab запросы обновления базы с 1 часо[цензура]ницы, проблемы пропали
в общем факт есть, WG закрутил гайки сильно, и не на один запрос, так еще и на Х запросов в Х минут

два клана, по 7х и 5х игроков

p.s. сравнивал файлы из нового дистрибутива и у себя на хосте, исходники были разные в размерах, но по коду одинаковые, просто перекачал исходники, залил себе на хост и почистил папку кэша перед запуском cron задач
Сам cron задачи не запускаю, всегда запускаются только по графику или при установке с нуля пробую на другом хосте/IP
#8609 MadPaul 09 окт 2012, 03:58
shw писал(а):Хех, а никто не говорил, что эта инфа за сутки дается =)
в штатном исполнении main.php данные поступают за 2 суток. (вроде).

Понятно, в предыдущих версиях модуля было очень похоже, что инфа поступает за сутки, буду иметь в виду. Спасибо.
В качестве предложения, думаю, было бы интересно добавить возможность самому устанавливать нужную дельту в админ-панели.
Exinaus писал(а):Поэтому оптимально настраивать крон на сбор статистики в 3-4 часа ночи, когда в онлайн в клане - максимум пару задротов.

Спасибо большое за лекцию - очень познавательно.
Сам тоже думал изменить время сбора на глубокую ночь - теперь уж точно так сделаю.
#8628 Vandal81 10 окт 2012, 01:39
http://bwq-wot.16mb.com/bwq/main.php#tabs-1

Появился игрок с ником "0" в Топе 5 по урону и во вкладке Топ 10 (хотя в списках игроков во вкладке Состав его нет. Чистка базы ни к чему не приводит, так и появляется этот глюк.

При выполнении крона:

Notice: Undefined variable: tmp_second in /home/u691575931/public_html/function/func_cron.php on line 278
Warning: Invalid argument supplied for foreach() in /home/u691575931/public_html/function/func_cron.php on line 278
Выполнено


Далее если снова запустить cron ошибка исчезает и горит просто Выполнено, но затем снова появляется спустя какое-то время + не создается лог файл cron.log в корне сервера (права chmod 777 установлены в необходимых для записи каталогах и файлах)
#8637 shw 10 окт 2012, 12:31
Vandal81 писал(а):http://bwq-wot.16mb.com/bwq/main.php#tabs-1

Появился игрок с ником "0" в Топе 5 по урону и во вкладке Топ 10 (хотя в списках игроков во вкладке Состав его нет. Чистка базы ни к чему не приводит, так и появляется этот глюк.

При выполнении крона:

Notice: Undefined variable: tmp_second in /home/u691575931/public_html/function/func_cron.php on line 278
Warning: Invalid argument supplied for foreach() in /home/u691575931/public_html/function/func_cron.php on line 278
Выполнено


Далее если снова запустить cron ошибка исчезает и горит просто Выполнено, но затем снова появляется спустя какое-то время + не создается лог файл cron.log в корне сервера (права chmod 777 установлены в необходимых для записи каталогах и файлах)

Я догадываюсь, в чем может быть дело.
1) Самое оптимальное по времени решение - переустановить БД (В админке модуля - вкладка базы данных, верхняя кнопка). Все равно cron ни разу толком не отработал, так что потери минимальны. После переустановки не забудьте сразу выставить нужный id клана и заново переобозвать табы. Ну и явки пароли сменить, если надо.
2) А никто и не говорил что лог крона всенепременно должен появиться в корне хостинга. он у вас лежит тут:
http://bwq-wot.16mb.com/bwq/cron.log
Проверьте, почему у вас две ( wtf ?!) задачи запуска cron в 00:30.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Реклама | Adv
cron