Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak zrobić logownaie
Rozpalacz
post
Post #1





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 31.01.2006

Ostrzeżenie: (0%)
-----


Witam,

mam skrypt dzialaj.php który w trakcie pracy ma logować informacje.
Drugi skrypt czytaj_logi.php będzie uruchamiany w interwale za pomocą ajaxa, pobierał aktualne logi zapisane przez dzialaj.php i wyświetlał na stronie. Próbowałem dwóch sposobów ale żadne nie jest zadowalający.

1. Zapis do bazy danych do tabeli
plus:
mam na bieżąco informacje które mogę pobrać drugim skryptem pobierz_logi.php
minusy:
po każdym wierszu muszę zrobić commit jeśli chcę mieś aktualne dane. Jeśli mam zapisać jakieś 10.000 rekordów, to wydłuży mi to znacznie

Ze względu na wydłużony czas działania odrzuciłem ten sposób

2. Zapis do pliku za pomocą file_put_contents i odczytywanie za pomocą file_get_contents
plusy: szybki zapis i odczyt danych
minusy: próba jednoczesnego zapisu i odczytu kończy się błędem

Ze względu na błędy z jednoczesnym odczytem i zapisem odrzucam ten sposób.

Jaki sposób mogę wykorzystać tutaj? Używacie jakiegoś sprawdzonego sposobu?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


zapis do BD i przesyłanie AJAX-em znacznika czasu ostatniej aktualizacji i pobieranie tylko nowszych rekordów.
BD wydaje się być najlepsza. Ew. Redis i zapis poóźniony. Zbierasz dane w pamięci a Redis sobie zrzuca te dane gdzie ustalisz w tle dzięki czemu masz aktualne dane i automatyczny zapis którego użytkownik nie widzi.

Co do sposobu z plikiem.
  1. file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
Go to the top of the page
+Quote Post
Rozpalacz
post
Post #3





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 31.01.2006

Ostrzeżenie: (0%)
-----


Kod
FILE_APPEND | LOCK_EX

używam, ale przy odczycie danych wywali się błąd jeśli będą właśnie zapisywane dane do pliku lub jeśli będzie plik czytany to wywali się błąd przy zapisie.

BD wydaje się być najlepszym sposobem, ale jeśli w trakcie działania skryptu zaloguję jakieś 2000 rekordów z commitem to skrypt będzie mi to wykonywał z jakieś 40 sekund dłużej.

Ten post edytował Rozpalacz 9.02.2015, 12:50:44
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


nie napisałeś co logujesz, ile tego jest. Dlaczego akurat 2tyś?
Go to the top of the page
+Quote Post
Rozpalacz
post
Post #5





Grupa: Zarejestrowani
Postów: 80
Pomógł: 0
Dołączył: 31.01.2006

Ostrzeżenie: (0%)
-----


Pobieram skryptem w pętli strony internetowe gdzie link
Kod
www.pobioreciestrono.pl/strona=1

stron jest do pobrania jakieś 2000.

W dużym skrócie:
Chciałem logować informację na której aktualnie stronie się znajduje skrypt. Czyli co stronę zapisywac log z informacją "obrabiam stronę X". Drugi skrypt pobierał mi będzie tą informację.

1. Można zrobić z BD, na zasadzie - commituj co 10 i wtedy czas zapisu zmniejszy się 10 krotnie. Ale to nie do końca mi się podoba, gdyż, jedną stronę może ładować 10 sekund a druga sekundę. I jeśli skrypt pędzie pobierał informacje co sekundę to już pojawia się zakłamanie.

2. Można też plikami wykorzystując - nazwałbym to - chamską pętlę smile.gif Jeśli ma problem z odczytem czy zapisem to ponawia.
czyli file_put_contents i file_get_contents
do {

while (file_put_contents === false)

Ale nie wiem czy to dobre rozwiązanie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:47