logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak uruchamiać skrypt PHP co godzinę bez dostępu do CRONJob'a?

13 Cze 2013 08:33 4179 20
REKLAMA
  • #1 12412270
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • REKLAMA
  • #3 12413439
    Konto nie istnieje
    Poziom 1  
  • #4 12413489
    shadow4601243
    Poziom 23  
    Posty: 482
    Pomógł: 39
    Ocena: 44
    Coś więcej o tym skrypcie?

    Zawsze mogą się uruchamiać wzajemnie, wystarczy żeby cron był na jednym z serwerów.
    Ewentualnie w niektórych przypadkach cykliczne uruchamianie nie jest najlepszym wyborem.
  • #5 12414297
    Konto nie istnieje
    Poziom 1  
  • #6 12414412
    shadow4601243
    Poziom 23  
    Posty: 482
    Pomógł: 39
    Ocena: 44
    W takim razie bez crona nie da rady.
    Zawsze możesz go "emulować" na bazie wywołań skryptu przez użytkowników.

    Php nie da się uruchomić w tle, działa na podstawie pojedynczych wywołań. (tzn da się, ale nie używa się tego w praktyce)
  • #7 12414444
    zlotowinfo
    Poziom 16  
    Posty: 640
    Pomógł: 7
    Ocena: 59
    if ( date("U")-date("U", @filemtime('js/update_waluty')) > 3600 ) { include "update_waluty.php"; }
  • REKLAMA
  • #8 12414459
    shadow4601243
    Poziom 23  
    Posty: 482
    Pomógł: 39
    Ocena: 44
    Jeśli hosting pozwala uruchomić coś z konsoli to raczej ma crona.
    W przeciwnym wypadku taka pętla się wyłoży na execution time :)
  • #9 12414475
    zlotowinfo
    Poziom 16  
    Posty: 640
    Pomógł: 7
    Ocena: 59
    O czym waść prawisz, nikt tu o pętlach nie pisał,
  • #10 12415138
    Konto nie istnieje
    Poziom 1  
  • #11 12415145
    zlotowinfo
    Poziom 16  
    Posty: 640
    Pomógł: 7
    Ocena: 59
    "Cykliczne wykonywanie skryptu PHP bez CRONJob'a"
  • #12 12415354
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #13 12415462
    zlotowinfo
    Poziom 16  
    Posty: 640
    Pomógł: 7
    Ocena: 59
    Dałem konkretny przykład.
  • #14 12415733
    shadow4601243
    Poziom 23  
    Posty: 482
    Pomógł: 39
    Ocena: 44
    Jeśli masz w ramach skryptu ruch użytkowników to możesz wywołać to tak jak opisał zlotowinfo:

    zlotowinfo napisał:
    if ( date("U")-date("U", @filemtime('js/update_waluty')) > 3600 ) { include "update_waluty.php"; }

    Dodajesz taki kod do każdego wywołania jakie masz i raz na godzine będzie wywoływało instrukcje z pliku w include.
    Ale ta opcja wymaga, żeby okresowo (jak najczęściej) był wywoływany ten fragment kodu, a mi coś mówi, że to będzie bardziej niezależny skrypt.

    Czy to MUSI być wywoływane dokładnie co godzinę?


    aj123 napisał:
    Dłuższa historia

    Zamieniam się w słuch.
  • #15 12415882
    Konto nie istnieje
    Poziom 1  
  • #16 12415895
    shadow4601243
    Poziom 23  
    Posty: 482
    Pomógł: 39
    Ocena: 44
    A czy nie ma możliwości sprawdzania stanu konta danego użytkownika przy jego logowaniu?
    Chyba że potrzebny jest jakiś mailing?

    Jako admin serwera też bym się wkurzał jeśli ktoś by mi sprawdzał bez potrzeby cała bazę użytkowników co godzinę :)
  • #17 12416760
    Konto nie istnieje
    Poziom 1  
  • #18 12416794
    shadow4601243
    Poziom 23  
    Posty: 482
    Pomógł: 39
    Ocena: 44
    A czy jest jakiś inny powód do sprawdzania tego? :)

    Odświeżaj bazę wtedy kiedy jest to potrzebne (logowanie, pobieranie listy adminów itp...)
  • #19 12416922
    Konto nie istnieje
    Poziom 1  
  • #20 12417300
    shadow4601243
    Poziom 23  
    Posty: 482
    Pomógł: 39
    Ocena: 44
    Muszę wiedzieć po co żeby zaproponować sensowne rozwiązanie.

    Jeśli hosting nie ma nawet crona to zakładam, że masz dostęp tylko do php. A php ma to do siebie, że wszystko triggerujesz po wywołaniach użytkowników.

    Ciągle mam wrażenie, że okresowość jest zbędna i że można to zrobić inaczej.
    Jedyny powód jaki widział bym do stosowania okresowego sprawdzania to jakiś mailing, który będzie informował o "końcu czasu na jaki dostał admina". W przeciwnym razie wystarczy sprawdzanie przy logowaniu.

    Dodano po 2 [minuty]:

    aj123 napisał:
    Znaczy generalnie chodzi o to żeby gościu nie mógł zarządzać serwerem jeśli skończu mu się czas, na jaki admina dostał. Nie pytaj mnie po co mi to, tylko powiedz jak to zrobić ;)


    Na ten moment rozwiązanie mam takie, że podczas "zarządzania serwerem" sprawdzasz czy "skończył mu się czas" i dopiero wtedy wyłączasz dostęp.

    Wytłumacz mi dlaczego w tym wypadku się nie sprawdzi? :)
  • #21 12418139
    Konto nie istnieje
    Poziom 1  

Podsumowanie tematu

✨ Użytkownik poszukuje sposobu na uruchamianie skryptu PHP co godzinę bez dostępu do CRONJob'a. W odpowiedziach zasugerowano kilka serwisów do uruchamiania skryptów na zdalnych serwerach, jednak użytkownik potrzebuje rozwiązania, które będzie uniwersalne i niezależne od konkretnego hostingu. Wskazano, że PHP działa na zasadzie wywołań użytkowników, co może być wykorzystane do emulacji cyklicznego uruchamiania skryptu. Użytkownik wyjaśnił, że skrypt ma za zadanie pobierać dane z bazy i sprawdzać czas wygaśnięcia usług dla użytkowników. Wskazano, że bez CRONJob'a nie ma prostego rozwiązania, a alternatywne metody mogą być niewystarczające, zwłaszcza w kontekście wymagań dotyczących częstotliwości uruchamiania.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA