Autor Wątek: Jak ręcznie usunąć wszystkie zadania CRON  (Przeczytany 3222 razy)

publiker.pl

  • Administrator
  • Hero Member
  • *****
  • Wiadomości: 1 867
  • Pomógł: 0
    • Zobacz profil
Jak ręcznie usunąć wszystkie zadania CRON
« dnia: 03 Sierpień 2012, godz: 17:56 »
UWAGA: Program samodzielnie oczyszcza tabelę zrealizowanych zadań CRONa na bieżąco. Czasem jednak tabela może rozrosnąć się za bardzo i wtedy można od czasu do czasu, na przykład co kilka miesięcy, oczyścić ją ręcznie, co przeważnie przyśpiesza działanie programu. Zbyt częste oczyszczanie ręczne tabeli zadań CRONa nie jest zalecane.

Jak ręcznie usunąć wszystkie zadania CRON
Aby oczyścić kolejkę zadań CRONa ze wszystkich zadań należy usunąć część danych z tabeli publiker_cron_jobs. Aby to zrobić należy uruchomić zapytanie do bazy danych MySql, które podaje poniżej.

Dla wersji 2.1.0 lub nowszej:
DELETE FROM publiker_cron_jobs WHERE SUBSTR(command, 1, 2)='c='

Dla wersji starszej niż 2.1.0:
DELETE FROM publiker_cron_jobs WHERE SUBSTR(command, 1, 5)='class'

Zapytanie do bazy MySql można uruchomić np. przez phpMyAdmin (zakładka w menu 'SQL').

UWAGA 1: Jeśli w programie jest zdefiniowanych kilka kolejek CRONa, to trzeba wywołać to polecenie dla każdej kolejki odpowiednio zmieniając nazwę tabeli 'publiker_cron_jobs' na 'publiker_cron_jobs1', 'publiker_cron_jobs2', itp.

UWAGA 2: W powyższych zapytaniach, w nazwie tabeli 'publiker_' to domyślny prefiks tabel - jeśli w Twojej instalacji wybrałeś inny prefiks podczas instalacji, to należy odpowiednio zmodyfikować zapytanie do bazy danych.

Jeśli nie udaje się wykonać powyższego zapytania
Czasem może się zdarzyć, że nie jest możliwe uruchomienie powyższego zapytania, na przykład wtedy, gdy tabela zadań CRON jest zbyt duża. W takim przypadku można spróbować metody alternatywnej wykonując poniższe kroki:
  • Usuń wszystkie dane z tabeli zapytaniem: TRUNCATE TABLE publiker_cron_jobs
  • Znajdź z swojej instalacji Publikera na serwerze plik /applications/db-data.php, otwórz go w edytorze i znajdź zapytanie do bazy uzupełniające tabelę zadań CRONa podstawowymi zadaniami. Zapytanie to będzie się zaczynać od 'INSERT INTO `#__cron_jobs` ('. Zapytanie to składa się z kilku/kilkunastu linii.
  • Zmodyfikuj zapytanie z punktu 2) tak, aby zawierało poprawną nazwę tabeli, czyli zastępując ciąg '#__' prefiksem z Twojej instalacji (domyślnie prefiksem jest 'publiker_').
  • Uruchom zapytanie do bazy - zapytanie do bazy MySql można uruchomić np. przez phpMyAdmin (zakładka w menu 'SQL').
  • Wejdź do panelu administracyjnego Publikera, wejdź w Menu -> Katalogi -> Emaile do rejestracji, a następnie KAŻDEGO aktywnego emaila wyłącz, a następnie włącz ponownie (można to szybko zrobić klikając znaczek czerwonego "ptaszka" (wyłączenia), a następnie ponownie kliknąć, aby włączyć email). Ten punkt jest konieczny, aby dodać do listy zadań CRON zadania związane ze sprawdzaniem kont pocztowych email).

Zobacz również:
CRON: Konfiguracja uruchamiania zadań CRON na serwerze
CRON: Jak sprawdzić, czy CRON na serwerze jest prawidłowo skonfigurowany?
CRON: Uruchamianie zadań CRON na serwerach home.pl
CRON: Uruchamianie zadań CRON na serwerach nazwa.pl
CRON: Uruchamianie zadań CRON na serwerach proste.pl
CRON: Uruchamianie zadań CRON z darmowego serwera
CRON: Lista zadań do wykonania
« Ostatnia zmiana: 10 Wrzesień 2013, godz: 23:19 wysłana przez publiker.pl »

Kriss

  • Newbie
  • *
  • Wiadomości: 17
  • Pomógł: 0
    • Zobacz profil
Odp: Jak ręcznie usunąć wszystkie zadania CRON
« Odpowiedź #1 dnia: 08 Styczeń 2013, godz: 12:01 »
Jak teraz po aktualizacji i dodaniu wielu kolejek crona wykonać czyszczenie listy zadań ?
bo utworzyłem sobie 9 kolejek i analogicznie komendę pozmieniałem na:
DELETE FROM publiker_cron_jobs WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs1 WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs2 WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs3 WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs4 WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs5 WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs6 WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs7 WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs8 WHERE SUBSTR(command, 1, 2)='c='
DELETE FROM publiker_cron_jobs9 WHERE SUBSTR(command, 1, 2)='c='

ale wyskakuje błąd SQL:
#1064 - Something is wrong in your syntax obok 'DELETE FROM publiker_cron_jobs1 WHERE SUBSTR(command, 1, 2)='c=' DELETE FROM pu' w linii 2

....

Już znalazłem błąd ...
komendę należny wykonywać pojedynczo dla każdej listy-kolejki
« Ostatnia zmiana: 08 Styczeń 2013, godz: 12:08 wysłana przez Kriss »

wodnick

  • Sr. Member
  • ****
  • Wiadomości: 403
  • Pomógł: 11
    • Zobacz profil
Odp: Jak ręcznie usunąć wszystkie zadania CRON
« Odpowiedź #2 dnia: 08 Styczeń 2013, godz: 12:25 »
Dodaj średnik na końcu każdej linii.
Dla SQLi enter nie jest znakiem końca instrukcji.