Otóż mam problem na skrypcie enJOINTme. Polega na tym, że po użyciu np komendy bana na jedną minutę(np) trwa on w nieskończoność. Rozmowa i nieco pomocy ze strony WujcioMattta niestety nie pomogły(powodem był m.in zupełnie inny styl jego pisania skryptów i ten, który posiadam, więc poniekąd i mój), oraz wszelkie ingerencje z mojej strony. Podam tyle, że czat stoi na zagranicznym serwerze, jednak data wyświetlana jest prawidłowo. Może ktoś ma ten skrypt u siebie i by potrafił podpowiedzieć co jest przyczyną całego zamieszania.
Ogłoszenie
Zwiń
No announcement yet.
Problem z komendami typu ban(wygasające po pewnym czasie)
Zwiń
X
-
to masz kolejny problem
Jesli z czata korzystaja osoby (jakiekolwiek) nie dawaj unbana w cronie, z wlasnych doswiadczen (nie koniecznie takie musza byc twoje bo wg mnie to zalezy tez od serwera) cron jako tako obciaza serwer i czasem powoduje zawieszanie sie procesow wtedy trza dawac killa ale do sedna
Na twoim miejscu wg mnie lepiej by bylo aby nie bylo crona a poprostu sprawdzanie czasu czy ban powinien zostac zdjety przy jakimkolwiek wejsciu kogos na czat lub np napisaniu kogos - wg mnie (oczywiscie inni moga miec odrebne zdania) jest to bardziej "ekologiczne"
Aczkolwiek ponownie pisze ze moge sie mylic (kazdy sie wciaz uczy)
Komentarz
-
Zamieszczone przez Beniooo Zobacz postaMoże i "ekologiczne", ale jeśli chcesz zrobić powiadomienie o banie/mute, który wygasł, to tylko cron, bo inaczej może być trochę obsuwy
No i jeśli ładnie napiszesz skrypt dla crona i "normalnie"(tj. nie co minutę) ustawisz, to nie zjada aż tyle cykli.
ja mam crona tylko do autoki, w tym przypadku nie mam crona i nie "obsuwa" ale mowie to ze wzgledu na wykorzystywanie czata jesli nic sie na czacie nie dzieje to moze faktycznie cron tu znacznie jest lepszy
Komentarz
-
Zamieszczone przez Beniooo Zobacz postaNie wykorzystanie czatu, tylko serwera bardziej
W sumie przy jednym numerku można sobie wybrać cokolwiek, ale przy wielu cron staje się idealny
ja mam przy wielu tzn nie do konca u nas czaty sa chodliwe ciagle sie cos dzieje wiec bany muslayby byc nadane na identyczny czas zdjecia by mozna bylo brac pod uwage wielu (chociaz 2 numerki) a takie cos jeszcze sie nie zdarzylo ale kod jest gotowy wziasc wiecej niz 1 gg to tam pikus takie cos zrobienie ;d
Pozatym zastanawiam sie nad twym postem o tym imperium bo slyszalem ze nie tylko tu jestes na forum PHP i powiedziano mi ze jestes (mimo iz cie nie znam osobiscie) dosc wtajemniczony w kody (czytaj nie jestes pierwszakiem) wiec chyba miloby bylo nawiazac z toba wspolprace ale jeszcze sie waham (sorki)
Komentarz
-
W sumie cron nie jest aż takim złym rozwiązaniem, ale jednak ten serwer nie wytrzymuje "napięcia"(1 czat, 1 plik uruchamiany co minutę, następnie co 5 minut, aż w końcu 10) i +/- pół minuty przed i po zainicjowaniu skryptu na czacie było widoczne opóźnienie, a wielokrotnie nawet timeout. Chyba jednak spróbuję sugestii WujcioMattta. Jednak do testów wszystkiego zakładam osobny czat, m.in po małej wpadce z czasem, po którym vip wygasał.
P.S Po założeniu i zarejestrowaniu drugiego bota(pierwszy znajdował się w katalogu www) w katalogu www/testowy nie mam od niego odpowiedzi, chyba że po stworzeniu celowo błędu w skrypcie lub użyciu WYPISZ/ZAPISZ. Czy to jakiś błąd ze strony botapi, czy może ja coś źle zrobiłem? Jakieś sugestie odnoście tego problemu?
Komentarz
-
ja ci powiem to co na privie daj cos takiego ze sekundowe bany tzn zrob przelicznik czasu czyli jak dajesz bana na 1 minute to dajesz na 60 sekund i tak dalej.
Potem zrob tak te kod pobiera obecny czas i dodaje do niego liczbe sekund bana czyli jesli dla przykladu mamy czas liczony w sek od roku 1970 - 100 to dajac bana na minute da nam 160 (mysle ze czaisz)
nastepnie zapisz ze user ma bana i czas 160
Nastepnie sprawdzanie czy obecny czas nie jest mniejszy niz czas zapisany w jego profilu czyli w przykladzie 160 jesli jest to unban jesli nie to nic czyli ban nadal aktywny
Zaczailes nie? zdolny chlopak jestes napewno zaczailes
Komentarz
-
Powiedzmy że czaję, jednak skąd się wzięło to -100?
W skrypcie na którym pracuję w komendzie ban jest składnia: /ban nick czas jednostka powód
if($text[3] == 'm')
{
$czas_ban = mktime(date('H')+$godziny,date('i')+$text[2],date('s'),date('m'),date('d')+$dni,date('Y')+$lat a);
}
Więc ten kod (w tym przypadku dla minut) dodaje do obecnej daty "text[2]" minut(znaczy do zmiennej daty "i") i w tej postaci wrzuca czas bana do bazy danych. Więc zgodnie z pomysłem Mattta jednym z lepszych pomysłów byłoby dodanie do komendy /join odpowiednią instrukcję warunkową sprawdzającą czy dana osoba jest zbanowana. Jeśli tak, to porównuje obecny czas serwera z czasem zapisanym w bazie danych i jeśli jest on mniejszy niż czas obecny to daje ub i pozwala na wejście. Myślę że takie rozwiązanie, może nie jest najlepsze, jednak na mój poziom w php to kilkanaście nieudanych prób w tym dwie prawie prawie i w końcu w pełni działający ub
I właśnie tu jest problem. Czat, na którym pracuję jest użytkowany przez małą grupkę ludzi, których odstraszają nagłe komunikaty typu "Error". I tu ponawiam pytanie sprzed dwóch postów. co może być przyczyną niedziałającego czatu testowego
Komentarz
-
jesli ja mam bana u ciebie na czacie to raczej nie bede probowal wejsc co chwile by luknac czy sie sciagnal wiec lepeij by bylo aby sprawdzenie bana nie bylo pod from a wszystkich zbanowanych, tzn ze jakis juziek wchodzi na czat to kod sprawdza kto ma bana i komu juz powinien byc sciagniety, sciaga i daje mu info a juziek i ludzie online dostaja swoje osobne info o tym ze juziek wszedl a juziek powitanie na czat, jesli nie ma zadnej osoby do sciagniecia bana to standardowa procedura wejscia na czat
Komentarz
-
Nie powiem, że to nie prawda. Jednak uruchamianie cron co minuta może być męczące dla serwera. U mnie więc cron jest uruchamiany max 1 raz na godzinę i wyraźnych braków w wydajności nie ma. Teraz też pracuję nad nowym systemem vip, więc dojdzie kolejne uruchamianie cron, myślę, że raz na dzień. Ew jeszcze gry, o ile takowe wprowadzę
Komentarz
-
Na jednym z serwerów, na których operuję jest ustawiony cron na każdą minutę, działa 24/7, a obciążenie procka jest max 20%, przy około 5k unikalnych userów dziennie, każdy skrypt uruchamia ~5-10 innych skryptów. Obciążenie pamięci jest około 500mb, więc to jak będzie obciążony serwer zależy tylko i wyłącznie od maszyny.Już niedługo...
Komentarz
Komentarz