nalim
Новичок
GET_LOCK блокировка не снимается
Скрипт работает по крону
с теми же таблицами работают и другие скрипты
mysql 5.1.26
продолжительность работы сильно может различаться,
одновременно с другим самим собой работать не может,
поэтому делает блокировку по имени:
проблема втом что блокировка "зависла" и несмотря на то что скрипт уж давно завершен,
IS_FREE_LOCK все время возвращает 0.
Можно сделать IS_USED_LOCK и удалить это соединение,
но это такой эффект уже не первый раз повторяется.
Как избежать "бессмертных" блокировок?
чтото неверно в коде?
Скрипт работает по крону
с теми же таблицами работают и другие скрипты
mysql 5.1.26
продолжительность работы сильно может различаться,
одновременно с другим самим собой работать не может,
поэтому делает блокировку по имени:
PHP:
$hostname_catalog = "localhost";
$database_catalog = "..";
$username_catalog = "..";
$password_catalog = "..";
$catalog = mysql_pconnect($hostname_catalog, $username_catalog, $password_catalog)
or trigger_error(mysql_error(),E_USER_ERROR);
$start_flag = $catalog->query(sprintf("SELECT IS_FREE_LOCK('%s') as flag", 'new_indexer2'))
or trigger_error($catalog->error, E_USER_ERROR);
list($sf) = $start_flag -> fetch_array();
if ($sf == 0 )
{
echo ('allredy started. exiting...');
die();
}
IS_FREE_LOCK все время возвращает 0.
Можно сделать IS_USED_LOCK и удалить это соединение,
но это такой эффект уже не первый раз повторяется.
Как избежать "бессмертных" блокировок?
чтото неверно в коде?