Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak ustawić limit czasu dla zapytania MySQL za pomocą C API?

Dobra, znalazłem rozwiązanie.. Dzięki Will i PRR (mój współpracownik).

nie mogę uruchom nowy wątek przy każdym zapytaniu, ponieważ jest to aplikacja działająca w czasie rzeczywistym, która ma przetwarzać ponad 1000 wiadomości na sekundę..(w każdym razie dzięki R.. za pomysł).

Nie było również możliwości przerwania połączenia przez bibliotekę ani anulowania/zabicia zapytania, ponieważ problem dotyczył serwera DB.

A oto rozwiązanie siłowe, ale wciąż znacznie lepsze niż _EXIT( FAILURE ) :Oto powiązane pytanie:"Jak wymusić zamknięcie gniazdo w Linuksie?" - więc właśnie zamknąłem gniazdo za pomocą wywołania systemowego.

Ważna UWAGA :(dzięki Will) - Okazało się, że nasz wrapper biblioteki MySQL posiada flagę "fail-safe", więc przy zamkniętym gnieździe (lub innym krytycznym błędzie) próbuje "rozwiązać" problem, więc ponownie otwiera gniazdo , w moim przypadku. Tak więc po prostu wyłączyłem tę opcję i wszystko jest teraz w porządku - wykonanie zostało przerwane z powodu wyjątku - jest to "najdelikatniejszy" sposób na zrobienie tego.
Powinno to być zrobione przez inny wątek, oczywiście - a na przykład timer.

EDYTUJ: Limity czasu naprawdę działają dla wersji po 5.0.25. Ale przynajmniej w RHEL4 i RHEL5 limity czasu są z jakiegoś powodu potrojone! Na przykład, jeśli niektóre limity czasu są ustawione na 20 sekund, rzeczywisty limit czasu wynosi ~60 sekund.
Ponadto inną ważną rzeczą jest to, że te limity czasu (jak wszystkie inne opcje) MUSZĄ być ustawiony po mysql_init i przed mysql_connect lub mysql_real_connect .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyświetlaj wyniki zapytania SQL w php

  2. Zapytanie do tabeli przestawnej MySQL z dynamicznymi kolumnami

  3. Utworzyć tabelę mysql bezpośrednio z pliku CSV za pomocą silnika CSV Storage?

  4. MySQL zmienia tabelę i konwertuje dane z tekstu na datę i godzinę

  5. Problem z dodaniem klucza obcego za pomocą Alter Table z istniejącą bazą danych MYSQL - nie można go dodać! Pomoc!