[SF][SF2][Symfony2] Zadania CRON, Jakie podejście w CommandClass ? |
[SF][SF2][Symfony2] Zadania CRON, Jakie podejście w CommandClass ? |
7.02.2017, 21:52:54
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
Poczytałem trochę o zadaniach konsolowych w Symfony:
http://symfony.com/doc/current/console.html Potrzebuję w stałym czasie (Poniedziałek 00:00) wykonać kilka zadań (oczywiście ustawię je na CRONie). Będą to trzy zadania i każde będzie insertem/wieloma insertami danych do bazy danych. Chciałem się poradzić jakie są dobre praktyki tworzenia takich zadań ? Mogę w metodzie execute() wrzucić logikę związaną z tworzeniem instancji klasy i wykonaniem na niej setów czy powinienem to wrzucić w innym miejscu np. Utils albo w serwisie a tutaj tylko wywoływać metodę innej klasy ? I drugie pytanie: Czy na każde zadanie powinienem zrobić osobą klasę Command czy wrzucić wszystkie 3 (różne) zadania do jednej metody execute() jednej klasy Command ?
Ten post edytował damianooo 7.02.2017, 21:55:30 |
|
|
21.02.2017, 23:05:26
Post
#2
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 5 Dołączył: 30.11.2016 Ostrzeżenie: (0%) |
Cytat Mogę w metodzie execute() wrzucić logikę związaną z tworzeniem instancji klasy Jasne że tak, przeszukaj w vendorach po słowie Command i zerknij. Cytat Czy na każde zadanie powinienem zrobić osobą klasę Command czy wrzucić wszystkie 3 (różne) Jeśli jedno z tych zadań powinno chodzić co godzinę a drugie co 12 to jak najbardziej 3 różne lub też kolejna opcja. W configure dajesz wymagany addArgument np "method" i na podstawie tego argumentu wywołujesz metodę w komendzie coś w tym stylu
I jeszcze jedno. Jeśli zadań na encjach jest sporo to do tego kodu
koniecznie dodaj
Mocno przyśpiesza i oszczędza dużo pamięci. |
|
|
22.02.2017, 19:34:41
Post
#3
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
Ok to jeszcze tylko pytanie jak to będzie działać na serwerze hostingowym ?
Do tej pory miałem tak że wskazywałem w poleceniu CRON jaki plik ma zostać uruchomiony o wybranej godzinie w ten sposób:
Rozumiem że jak na serwer hostingowy wrzucę swoją aplikację Symfony to wskażę plik MyCommend.php a polecnie będzie wraz ze ścieżką takie ? :
? Bo właśnie tego nie mogę nigdzie w sieci znaleźć Ten post edytował damianooo 22.02.2017, 19:34:59 |
|
|
23.02.2017, 08:52:13
Post
#4
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 30 Dołączył: 22.01.2007 Ostrzeżenie: (0%) |
Powyżej przykładowa klasa wysołujsz ją po nazwie, poleceniem konsolowym czyli: Cytat php bin/console time-report czyli w cronie podajesz np. Cytat php -q /home/opl/public_html/PROJEKT/bin/console time-report Mam nadzieje, że już jasne |
|
|
23.02.2017, 09:22:34
Post
#5
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 5 Dołączył: 30.11.2016 Ostrzeżenie: (0%) |
Lokalnie, tak jak napisał prz3kus
Kod php bin/console time-report A na produkcji to ja mam np Kod /usr/local/bin/php bin/console time-report > /dev/null 2>&1
Ten post edytował mcmaroon 23.02.2017, 09:23:03 |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 01:10 |