Skrypty Cron i CLI
Harmonogram pseudo-cron oraz opcjonalne skrypty wiersza poleceń dla zaawansowanych hostów.
TubePress wykonuje cykliczne zadania — przeliczanie rankingów, sprawdzanie zadań transkodowania, importowanie kanałów, odświeżanie map witryn i inne — bez konieczności konfigurowania systemowego crontab. Ta strona opisuje pseudo-cron, sygnał heartbeat podtrzymujący jego działanie oraz opcjonalne skrypty wiersza poleceń dla zaawansowanych hostów.
Pseudo-cron
CronManager to harmonogram wzorowany na WordPress. Zadania są rejestrowane z nazwą i interwałem, a CronManager::run() jest wywoływane raz na końcu każdego renderowania strony. Każde zadanie uruchamia się tylko wtedy, gdy od ostatniego uruchomienia minęło wystarczająco dużo czasu.
// Register a task (typically from a plugin's boot() method)
CronManager::register('promo_refresh', 600, function () {
Promo::rebuildCache(); // runs at most every 10 minutes
});Zaprojektowano go tak, aby był bezpieczny na każdym hostingu:
- Atomowe blokowanie. Warunkowe
UPDATEna tabelisettingsprzypisuje każde uruchomienie, dzięki czemu dwa równoczesne żądania nigdy nie uruchomią tego samego zadania dwukrotnie. - Trwałe znaczniki czasu. Czasy ostatniego uruchomienia są przechowywane w
settings(zautoload = 0), więc harmonogram przeżywa restarty i awarie — następne załadowanie strony po prostu wznawia pracę od miejsca, w którym ją przerwano. - Automatyczne wydłużanie przerw. Zadanie, które stale zgłasza błędy, jest ponawiane z wykładniczo rosnącym interwałem (ograniczonym do jednej godziny), aż do odzyskania sprawności, a licznik błędów resetuje się po sukcesie.
Heartbeat — bez crontab
Pseudo-cron uruchamia się tylko podczas renderowania stron, co stanowi problem dla nowej lub niskoruchu witryny. TubePress rozwiązuje to za pomocą samodzielnie zarządzanego heartbeat: lekkiego procesu CLI (bin/heartbeat.php), który pinguje stronę główną mniej więcej co 50 sekund, dzięki czemu harmonogram działa nawet przy zerowej liczbie odwiedzających.
- Jest chroniony przez PID i automatycznie restartowany przez każde żądanie HTTP, jeśli kiedykolwiek zakończy działanie — nie musisz go uruchamiać ani nadzorować.
- Wyłącz go w czasie działania, ustawiając
heartbeat_enabledna0.
crontab -e, bez supervisora, bez żadnych dodatkowych usług do utrzymania.Co działa na harmonogramie
Rdzeń i dołączone wtyczki rejestrują własne zadania — na przykład przeliczanie wyników CTR, wysyłanie i ponawianie zadań transkodowania, importy kanałów, przetwarzanie katalogu, zadania tłumaczenia AI i odświeżanie map witryn. W miarę włączania podsystemów dodają one swoje zadania automatycznie — nie ma nic do konfigurowania.
Opcjonalne skrypty CLI
Do ciężkich lub jednorazowych operacji kilka skryptów wiersza poleceń jest dostarczanych w bin/ i można je uruchamiać ręcznie lub z prawdziwego crontab na odpowiednich hostach. Obejmują one długo działające procesy robocze (do pobierania katalogu i masowego usuwania) oraz narzędzia do konserwacji. Uruchom je za pomocą systemowego CLI PHP z katalogu głównego projektu:
php bin/heartbeat.php # run the heartbeat in the foreground
php bin/catalogue-worker.php # process catalogue download jobsKorzystanie z prawdziwego crontab (zaawansowane)
Jeśli wolisz sterować harmonogramem z systemu operacyjnego — na przykład w witrynie o dużym ruchu, gdzie chcesz ścisłego i przewidywalnego harmonogramu — możesz wyłączyć heartbeat i dodać pojedynczy wpis cron systemu, który żąda strony głównej (lub uruchamia heartbeat raz) w krótkim interwale. Większość operatorów nigdy tego nie potrzebuje; wbudowany heartbeat jest wystarczający.
Następne kroki
Nadal masz problem?
Otwórz zgłoszenie z poziomu panelu, a nasz zespół Ci pomoże.