[PHP/DAdmin Cron] Zamknąć połączenie bez przerywania wyk

0

Witam, chciałem na stronie ustawić aby co godzinę przez Crona wykonywał się pewien skrypt, niestety po kilkudziesięciu próbach stwierdziłem że to coś nie bardzo mi działa, chociaż Crona już ustawiałem na innym serwerze i działało normalnie a tutaj jest jakiś DirectAdmin (DAdmin - temat) przez którego na tym serwerze za nic w świecie ustawić tego nie mogę, więc jeśli ktoś ma pomysł jak to zrobić to proszę a jak nie to pytanie poniżej.

Więc wymyśliłem sobie że wykorzystam to że na stronie non-stop jest ktoś on-line i co godzinę po prostu skrypt będzie się wykonywał razem ze stroną, tyle że teraz na końcu strony sprawdzam czy o tej godzinie już się skrypt wykonywał i jeśli nie, łączę się sam ze sobą, wysyłam request i zamykam połączenie a skrypt się wykonuje, ponieważ ustawione jest ignore_user_abort (true) ale chciałem się zapytać czy jest możliwość zamiast tego, zerwać po prostu połączenie z klientem i normalnie wykonywać dalszą część skryptu bez jego obecności.

0
  1. jesli jestes adminem serwera to konfiguracja cron'a nie bedzie klopotem, jesli nie to nic nie poradzisz, wielu administratorow nie daje mozliwosci dawania zadan do crona, bo stwaza to potencjalna (czasem nawet duza) luke w systemie

  2. Jesli cos MUSISZ wykonac co godzine, to zdawanie sie na uzytkownikow nie jest dobrym rozwiazaniem, bo np moze sie zdazyc ze miedzy 3 a 4 zadna osoba sie nie zaloguje... i wtedy jest zonk

  3. wykonywanie zadan przez http, moga byc klopotliwe jesli jest limit wykonywania skryptu a czas wykonania jest dlugi :/

Rozwiazaniem jest np, poszukac jakiejs darmowej strony ktora umozliwia kozystanie z crona (wiele co maja CPanel maja to wlaczone), dac tam tylko skrypt ktory bedzie otwieral zawartosc twoja.strona.pl/skrypt.php np przez file().
Nie rozwiazuje to 3) problemu ale uniezalezniasz sie w ten sposob od uzytkownikow strony, a skrypt jest wykonywany co do sekundy (no tu bym polemizowal [diabel] )

0

nie muszę, ale lepiej jakby to było mniej/więcej co godzinę, nie musi być co do sekundy, rozwiązanie które już jest zastosowane działa, więc nie ma problemów z time_limitem który mogę ustawić na nieskończoność, adminem serwa nie jestem raczej skoro piszę że ustawianie jest przez DirectAdmin, w sumie wykonywanie tych operacji nie ma żadnego sensu jeśli w danej godzinie nikt strony nie odwiedził więc zonka by nie było, chodzi mi tylko o to żeby odciążyć trochę serwerek, bo po co mu stwarzać nowy wątek z połączeniem skoro można wykorzystać istniejące ;P no bo chyba można by było nawet walnąć skrypt bez limitu z zapętlonymi operacjami i sleepem na godzinę ale admini by się raczej zdenerwowali

0

Co do samego problemu z tytułu - można to zrobić, w PHP jest komenda coś w stylu set_exit_procedure albo coś takiego - ustala co ma zrobić PO zamknięciu skryptu, czyli po tym, jak serwer wyśle "koniec" do usera.

1 użytkowników online, w tym zalogowanych: 0, gości: 1