Вопросы и ответы по программированию.
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Pechen
А как выполняется код? Если один скрипт работает пару минут - для стандартного варианта развёртывания это не
нормально. Обычно, по-умолчанию, соединение устанавливается при старте скрипта, закрывается при его завершении.
Нужно больше конкретики.
А как выполняется код? Если один скрипт работает пару минут - для стандартного варианта развёртывания это не
нормально. Обычно, по-умолчанию, соединение устанавливается при старте скрипта, закрывается при его завершении.
Нужно больше конкретики.
- Pechen
- Капитан
- Сообщения: 312
- Зарегистрирован: 25.10.2009
- Благодарил (а): 106 раз
- Поблагодарили: 449 раз
- Контактная информация:
MOZGIII
код выполняется пару часов, но соединение терялось всегда одинаково через определенный промежуток времени.
код выглядит примерно так
-есть класс в нем объявлена переменная, в констракте этой переменной присваивается mysqli_connect() запрос.
-в методе создается подготовленный запрос с использованием этой переменной.
-в дистракте соединение рвём
чтобы заработало как надо в методе пришлось поместись строчку из констракта(переменная = mysqli_connect() запрос) и в конце метода закрыть.
просто я так понимаю что при mysqli_stmt_init(наша переменная) должно создаваться соединение, а при mysqli_stmt_close() закрываться.
код выполняется пару часов, но соединение терялось всегда одинаково через определенный промежуток времени.
код выглядит примерно так
-есть класс в нем объявлена переменная, в констракте этой переменной присваивается mysqli_connect() запрос.
-в методе создается подготовленный запрос с использованием этой переменной.
-в дистракте соединение рвём
чтобы заработало как надо в методе пришлось поместись строчку из констракта(переменная = mysqli_connect() запрос) и в конце метода закрыть.
просто я так понимаю что при mysqli_stmt_init(наша переменная) должно создаваться соединение, а при mysqli_stmt_close() закрываться.
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
Нет, mysqli_stmt_init создаёт не соединение, а объект, который нужен для работы с prepared statements.
После открытия, соединение просто висит, и, если по нему ничего не передавать, оно умирает по таймауту. Чтобы не умирало, нужно либо делать какие-то запросы периодически (keepalive), либо можно просто перед каждым действием проверять [txtspoil]и поднимать мёртвых[/txtspoil].
После открытия, соединение просто висит, и, если по нему ничего не передавать, оно умирает по таймауту. Чтобы не умирало, нужно либо делать какие-то запросы периодически (keepalive), либо можно просто перед каждым действием проверять [txtspoil]и поднимать мёртвых[/txtspoil].
- Pechen
- Капитан
- Сообщения: 312
- Зарегистрирован: 25.10.2009
- Благодарил (а): 106 раз
- Поблагодарили: 449 раз
- Контактная информация:
MOZGIII
ясно, я поступил вторым способом. теперь понятно отчего рвалось в определенные моменты -- скипту подолгу нечего было класть в определенные моменты.
получается в такой записи -- mysqli_stmt_init(mysqli_connect(параметры соединения), запрос) соединение не создается, если нечего слать.
хоть делал скрипт для личного применения -- но решил все делать работу с базой по-науке через подготовленные запросы и хранимые процедуры)))
ясно, я поступил вторым способом. теперь понятно отчего рвалось в определенные моменты -- скипту подолгу нечего было класть в определенные моменты.
получается в такой записи -- mysqli_stmt_init(mysqli_connect(параметры соединения), запрос) соединение не создается, если нечего слать.
хоть делал скрипт для личного применения -- но решил все делать работу с базой по-науке через подготовленные запросы и хранимые процедуры)))
-
- Разработчик
- Сообщения: 910
- Зарегистрирован: 09.01.2009
- Откуда: Переезжаю в /dev/null
- Благодарил (а): 7 раз
- Поблагодарили: 65 раз
- Контактная информация:
В такой - создаётся, ты ведь делаешь mysqli_connect. Причём создаётся всегда.
Лучше юзать mysqli_ping($connection) http://php.net/manual/en/mysqli.ping.php и уже если она false, то $connection = mysqli_connect(...), или просто включить автореконнект.
Лучше юзать mysqli_ping($connection) http://php.net/manual/en/mysqli.ping.php и уже если она false, то $connection = mysqli_connect(...), или просто включить автореконнект.
Чтобы запилить апдейт для мода/игры, имея на руках старый контент и новый, достаточно ли проверять LastWriteTime через GetFileTime(...) + какая-нибудь хэш-функция или банально через fopen(...) + memcmp(...)?
Может ли быть что появятся новые файлы или исчезнут старые?
Просветите меня пожалуйста по этому поводу.
Может ли быть что появятся новые файлы или исчезнут старые?
Просветите меня пожалуйста по этому поводу.
- Shlak
- Эксперты no-Steam
- Сообщения: 1940
- Зарегистрирован: 24.04.2011
- Откуда: Рязань
- Благодарил (а): 97 раз
- Поблагодарили: 548 раз
- Контактная информация:
wowks
Если ты про Steam, то советую основываться на файлах manifest, т.к. в них указан список файлов с их хешем. Сравни старый и новый и получишь списки добавленных / удалённых / изменённых.
Если ты про Steam, то советую основываться на файлах manifest, т.к. в них указан список файлов с их хешем. Сравни старый и новый и получишь списки добавленных / удалённых / изменённых.
Shlak
есть инфа по структуре этих файлов?
есть инфа по структуре этих файлов?
- Shlak
- Эксперты no-Steam
- Сообщения: 1940
- Зарегистрирован: 24.04.2011
- Откуда: Рязань
- Благодарил (а): 97 раз
- Поблагодарили: 548 раз
- Контактная информация:
wowks
Вроде тут: http://cs.rin.ru/forum/viewtopic.php?p=767964#p767964
Также возможно что-то сможешь найти здесь: https://github.com/SteamRE/SteamKit/blo ... anifest.cs
Вроде тут: http://cs.rin.ru/forum/viewtopic.php?p=767964#p767964
Также возможно что-то сможешь найти здесь: https://github.com/SteamRE/SteamKit/blo ... anifest.cs
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 файл :) и напрямую сравнивать файлы и брать для апдейта либо их целиком либо куски которые отличаются
нее. парсить этот файл тот ещё гемор...
например я так и не понял почему в структуре 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 файл :) и напрямую сравнивать файлы и брать для апдейта либо их целиком либо куски которые отличаются
- Shlak
- Эксперты no-Steam
- Сообщения: 1940
- Зарегистрирован: 24.04.2011
- Откуда: Рязань
- Благодарил (а): 97 раз
- Поблагодарили: 548 раз
- Контактная информация:
wowks
Ну если лень заморачиваться с манифестами то можешь попробовать мою версию работающую на сравнении папок:
Из багов помню только неправильную передачу даты при компиляции в Inno Setup.Ну если лень заморачиваться с манифестами то можешь попробовать мою версию работающую на сравнении папок:
Скрытый текст. Нужно быть зарегистрированным и иметь сообщений: 100
- Вложения
-
- MakeXD3Patch.zip
- (975.37 КБ) 216 скачиваний
- MakeXD3Patch.zip
- (975.37 КБ) 216 скачиваний