Pytanie Używanie zadań CRON do odwiedzenia adresu URL?


Mam aplikację internetową, która musi wykonywać powtarzające się zadania, Wysyłanie wiadomości i alertów, ja już używam strony skryptu do wykonywania tych zadań po załadowaniu do przeglądarki, np. http://example.com/tasks.php i umieściłem to na środku iframe na każdej stronie mojej aplikacji internetowej.

Teraz chcę to zmienić, aby korzystać z zadań CRON, ponieważ pierwsze podejście może prowadzić do wydajności dżemu, więc Jak mogę wykonać zadanie CRON, które odwiedza http://example.com/tasks.php. Jednak nie chcę, aby to zadanie CRON tworzyło pliki wyjściowe, takie jak dzień. *!

Uruchamiam aplikację na współdzielonej usłudze hostingowej, która pozwala na wykonywanie zadań CRON przez cPanel.


67
2017-11-06 21:15


pochodzenie




Odpowiedzi:


* * * * * wget -O - http://yoursite.com/tasks.php >/dev/null 2>&1

To powinno działać dla ciebie. Po prostu mieć wget skrypt, który ładuje stronę.

Za pomocą -O - oznacza, że ​​wynik żądania internetowego zostanie wysłany do STDOUT (standardowe wyjście)

poprzez dodanie >/dev/null instruujemy standardowe wyjście, aby przekierować do czarnej dziury. poprzez dodanie 2>&1 poinstruujemy STDERR (błędy), aby również zostały wysłane do STDOUT, a zatem wszystkie dane wyjściowe zostaną wysłane do blackhole. (więc załaduje stronę, ale nigdy nie napisze pliku w dowolnym miejscu)


186
2017-11-06 21:18



Czy mógłbyś wyjaśnić> / dev / null 2> & 1 - SaidbakR
@ sємsєм - ok, zaktualizowałem moją odpowiedź, aby wszystko wyjaśnić. - Mitch Dempsey
Wow Dziękuję bardzo! - SaidbakR
@ sємsєм - cieszę się, że pomogło! - Mitch Dempsey
+1 za świetne wyjaśnienie - Praesagus


Nie potrzebujesz przekierowania, użyj tylko

* * * * * wget -qO /dev/null http://yoursite.com/tasks.php

23
2017-11-06 21:25



Dlaczego przekierowanie nie jest potrzebne? - Bradley Flood
-q|--quiet Turn off Wget's output. - Diego Torres Milano
twoje polecenie również używa przekierowania, ale w innej formie -qO / dev / null, nieprawdaż? - Pavel Nazarov
Ściśle mówiąc, nie przekierowanie jak Przekierowanie wejścia / wyjścia to rzecz muszelkowa - Diego Torres Milano


Możesz użyć curl jak jest w tym wątek

Dla leniwych:

*/5 * * * * curl --request GET 'http://exemple.com/path/check.php?param1=1'

Będzie to wykonywane co 5 minut.


15
2017-07-16 05:45





Możesz także użyć lokalnego wiersza poleceń php-cli:

* * * * * php /local/root/path/to/tasks.php > /dev/null

Jest szybszy i zmniejsza obciążenie twojego serwera WWW.


9
2017-11-06 21:30





Używam tych poleceń

wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1

Zadanie Cron:

* * * * * wget -q -O /dev/null "http://example.com/some/cron/job.php" > /dev/null 2>&1

7
2018-04-11 06:29



Ten potrzebuje wyjaśnienia, ale działa bardzo dobrze. Zwłaszcza jeśli, tak jak ja, masz adres URL w adresie URL. Umieszczenie adresu URL w cudzysłowie jest rozwiązaniem. Dlaczego wstawiasz / dev / null przed URL? - Gfra54
Jest to prawdopodobnie późna odpowiedź, ale nigdy nie jest za późno. Powód jest: / dev / null jest specjalnym obiektem systemu plików, który wyrzuca wszystko zapisane w nim. Przekierowanie strumienia do niego oznacza ukrycie wyjścia. The 2> i 1 część oznacza "przekierować zarówno strumień wyjściowy, jak i strumień błędów". - Abbas Arif
Ok, więc oznacza to, że zawartość wget jest przekierowywana do / dev / null (więc jest w zasadzie usunięta i zignorowana)? Dzięki - Gfra54
Tak dane wyjściowe wysłane do / dev / null jest ignorowany. - Abbas Arif


możesz użyć tego dla adresu URL z parametrami:

lynx -dump "http://vps-managed.com/tasks.php?code=23456"

Lynx jest domyślnie dostępny we wszystkich systemach.


2
2018-06-05 11:36



-dump zrzuca zawartość strony do pliku. Jest to prawdopodobnie niepożądany efekt uboczny. - Wicher Visser


Możesz użyć tego polecenia:

links https://www.honeymovies.com

2
2018-02-09 05:44