Вопросы и ответы по программированию.

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#391 Сообщение 09.11.2014, 21:54

Pechen
А как выполняется код? Если один скрипт работает пару минут - для стандартного варианта развёртывания это не
нормально. Обычно, по-умолчанию, соединение устанавливается при старте скрипта, закрывается при его завершении.
Нужно больше конкретики.

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#392 Сообщение 09.11.2014, 23:02

MOZGIII
код выполняется пару часов, но соединение терялось всегда одинаково через определенный промежуток времени.
код выглядит примерно так
-есть класс в нем объявлена переменная, в констракте этой переменной присваивается mysqli_connect() запрос.
-в методе создается подготовленный запрос с использованием этой переменной.
-в дистракте соединение рвём

чтобы заработало как надо в методе пришлось поместись строчку из констракта(переменная = mysqli_connect() запрос) и в конце метода закрыть.

просто я так понимаю что при mysqli_stmt_init(наша переменная) должно создаваться соединение, а при mysqli_stmt_close() закрываться.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#393 Сообщение 11.11.2014, 20:38

Нет, mysqli_stmt_init создаёт не соединение, а объект, который нужен для работы с prepared statements.
После открытия, соединение просто висит, и, если по нему ничего не передавать, оно умирает по таймауту. Чтобы не умирало, нужно либо делать какие-то запросы периодически (keepalive), либо можно просто перед каждым действием проверять [txtspoil]и поднимать мёртвых[/txtspoil].

Аватара пользователя
Pechen
Капитан
Капитан
Сообщения: 312
Зарегистрирован: 25.10.2009
Благодарил (а): 106 раз
Поблагодарили: 449 раз
Контактная информация:

#394 Сообщение 11.11.2014, 20:49

MOZGIII
ясно, я поступил вторым способом. теперь понятно отчего рвалось в определенные моменты -- скипту подолгу нечего было класть в определенные моменты.
получается в такой записи -- mysqli_stmt_init(mysqli_connect(параметры соединения), запрос) соединение не создается, если нечего слать.

хоть делал скрипт для личного применения -- но решил все делать работу с базой по-науке через подготовленные запросы и хранимые процедуры)))

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#395 Сообщение 12.11.2014, 00:28

В такой - создаётся, ты ведь делаешь mysqli_connect. Причём создаётся всегда.

Лучше юзать mysqli_ping($connection) http://php.net/manual/en/mysqli.ping.php и уже если она false, то $connection = mysqli_connect(...), или просто включить автореконнект.

Аватара пользователя
wowks
Майор
Майор
Сообщения: 525
Зарегистрирован: 09.12.2008
Благодарил (а): 67 раз
Поблагодарили: 37 раз

#396 Сообщение 30.03.2015, 08:51

Чтобы запилить апдейт для мода/игры, имея на руках старый контент и новый, достаточно ли проверять LastWriteTime через GetFileTime(...) + какая-нибудь хэш-функция или банально через fopen(...) + memcmp(...)?
Может ли быть что появятся новые файлы или исчезнут старые?
Просветите меня пожалуйста по этому поводу.

Аватара пользователя
Shlak
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 1940
Зарегистрирован: 24.04.2011
Откуда: Рязань
Благодарил (а): 97 раз
Поблагодарили: 548 раз
Контактная информация:

#397 Сообщение 30.03.2015, 13:37

wowks
Если ты про Steam, то советую основываться на файлах manifest, т.к. в них указан список файлов с их хешем. Сравни старый и новый и получишь списки добавленных / удалённых / изменённых.
Тут только мой Steam профиль. Больше там ничего нет.
Изображение
Magicka 2 (Reff)

Аватара пользователя
wowks
Майор
Майор
Сообщения: 525
Зарегистрирован: 09.12.2008
Благодарил (а): 67 раз
Поблагодарили: 37 раз

#398 Сообщение 30.03.2015, 15:20

Shlak
есть инфа по структуре этих файлов?

Аватара пользователя
Shlak
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 1940
Зарегистрирован: 24.04.2011
Откуда: Рязань
Благодарил (а): 97 раз
Поблагодарили: 548 раз
Контактная информация:

#399 Сообщение 30.03.2015, 15:34

wowks
Вроде тут: http://cs.rin.ru/forum/viewtopic.php?p=767964#p767964
Также возможно что-то сможешь найти здесь: https://github.com/SteamRE/SteamKit/blo ... anifest.cs
Тут только мой Steam профиль. Больше там ничего нет.
Изображение
Magicka 2 (Reff)

Аватара пользователя
wowks
Майор
Майор
Сообщения: 525
Зарегистрирован: 09.12.2008
Благодарил (а): 67 раз
Поблагодарили: 37 раз

#400 Сообщение 30.03.2015, 21:14

Shlak
нее. парсить этот файл тот ещё гемор...
например я так и не понял почему в структуре https://wiki.singul4rity.com/steam:file ... stmetadata
для файла 290931_6081130365130119332.manifest (Half-Life 2 Update) filenames_encrypted = true, а в 405_3790265569705112952.manifest (Portal) = false;
или что это за 4 байта перед filename в https://wiki.singul4rity.com/steam:file ... estpayload
...если только я как обычно не накосячил

думаю всё-таки проще оставить загадочный .manifest файл :) и напрямую сравнивать файлы и брать для апдейта либо их целиком либо куски которые отличаются

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#401 Сообщение 31.03.2015, 08:44

wowks
Полагаться на время изменения файлов ненадёжно. У людей с фс иногда такое бывает...
А вообще rsync.

Аватара пользователя
Shlak
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 1940
Зарегистрирован: 24.04.2011
Откуда: Рязань
Благодарил (а): 97 раз
Поблагодарили: 548 раз
Контактная информация:

#402 Сообщение 31.03.2015, 11:37

wowks
Ну если лень заморачиваться с манифестами то можешь попробовать мою версию работающую на сравнении папок:
Скрытый текст. Нужно быть зарегистрированным и иметь сообщений: 100
Из багов помню только неправильную передачу даты при компиляции в Inno Setup.
Вложения
MakeXD3Patch.zip
(975.37 КБ) 198 скачиваний
MakeXD3Patch.zip
(975.37 КБ) 198 скачиваний
Тут только мой Steam профиль. Больше там ничего нет.
Изображение
Magicka 2 (Reff)