Przejdź do głównej zawartości

Background tasks

P2Lab Mirakl uruchamia 14 zaplanowanych zadań w tle — pobierają zamówienia, wysyłają stany magazynowe, odświeżają dane, sprzątają stare logi i tak dalej. Żadne z nich nic nie zrobi, jeśli na hoście nie działają dwa elementy:

  1. Harmonogram, który odpala zadania, gdy są wymagalne. W Shopware to polecenie scheduled-task:run, zwykle wywoływane z crona raz na minutę.
  2. Proces w tle, który wykonuje wysłaną pracę. To polecenie messenger:consume async, uruchomione jako długo działający proces.

Bez harmonogramu zadania nigdy nie stają się wymagalne. Bez procesu w tle wysłane zlecenia leżą w kolejce i nic się nie dzieje.

Każde zadanie ma domyślny interwał i można je przestawić na stronie administracyjnej Settings → System → Scheduled tasks. Interwały związane z synchronizacją można też zmienić per funkcja na zakładce Mirakl → Settings → Sync Settings — zobacz Settings.

ZadanieDomyślny interwałCo robi
Stock sync15 minWysyła aktualizacje stanów dla wszystkich aktywnych mapowań ofert do marketplace’u.
Order import30 minPobiera nowe i zaktualizowane zamówienia z każdego marketplace’u i tworzy je w Shopware.
Product export30 minBierze produkty oczekujące na eksport i wysyła je do katalogu marketplace’u.
Import status check5 minSprawdza postęp uruchomionych importów produktów, ofert i stanów; w razie błędu pobiera raport pozycji.
Message sync30 minPobiera nowe wiadomości przychodzące do zamówień. Domyślnie wyłączone.
Order document sync30 minPobiera nowe dokumenty przychodzące do zamówień. Domyślnie wyłączone.
Document request sync24 godz.Pobiera żądania dokumentów od operatora (faktury, korekty). Domyślnie wyłączone.
Invoice sync24 godz.Pobiera nowe faktury z marketplace’u. Domyślnie wyłączone.
Transaction log sync24 godz.Pobiera nowe wpisy z dziennika transakcji marketplace’u. Domyślnie wyłączone.
Transaction log export poll5 minSprawdza asynchroniczne zadanie eksportu dziennika transakcji u operatora i pobiera plik, gdy jest gotowy.
API log cleanup24 godz.Usuwa wiersze logu API starsze niż API Log Retention (days).
Sync log cleanup24 godz.Usuwa wiersze logu synchronizacji starsze niż Sync Log Retention (days).
Task progress cleanup24 godz.Usuwa zakończone wpisy z listy Tasks.
Export cleanup1 godz.Usuwa zakończone wpisy eksportu produktów i wygenerowane pliki CSV.

Włączanie i wyłączanie poszczególnych synchronizacji

Dział zatytułowany „Włączanie i wyłączanie poszczególnych synchronizacji”

Każda synchronizacja ma swój własny włącznik na zakładce Mirakl → Settings → Sync Settings. Gdy włącznik jest wyłączony, zaplanowane zadanie nadal odpala się w swoim interwale, ale obsługa po prostu je pomija — nie ma żadnego wywołania marketplace’u, nie zmienia się żaden trwały stan. Wyłączenie włącznika to zalecany sposób na pauzowanie synchronizacji.

Domyślnie:

  • Enable Stock Sync, Enable Order Import, Enable Product Export — włączone.
  • Enable Message Sync, Enable Order Document Sync, Enable Document Requests Sync, Enable Invoice Sync, Enable Transaction Log Sync — wyłączone. Włączaj je w miarę potrzeb.

Cztery zadania sprzątające (API log cleanup, Sync log cleanup, Task progress cleanup, Export cleanup) nie mają włącznika — zawsze działają. Korzystają z ustawień przechowywania na karcie Logs zakładki Mirakl → Settings → Options.

Gdy uruchomisz z panelu coś, co trwa dłużej — ręczny eksport, ręczna synchronizacja, odświeżanie danych referencyjnych, krok kreatora z paskiem postępu — plugin tworzy wpis na liście Tasks (Dashboard → Quick StartTasks), który panel odpytuje o postęp.

Każdy wpis przechodzi przez następujące stany: oczekuje → w kolejce → w trakcie → zakończone (albo błąd, albo anulowane). Lista pokazuje procent ukończenia i ostatni komunikat. Zadanie Task progress cleanup usuwa zakończone wpisy po dobie.

Plugin jest zaprojektowany tak, żeby przetrwać restart procesu w tle bez utraty ani dublowania pracy:

  • Samonastępujące partie — długie wgrywanie zleca kolejną stronę przed zakończeniem, więc awaria w trakcie partii traci najwyżej jedną stronę. Następne odpalenie harmonogramu odkrywa ją i wznawia.
  • Synchronizacje z kursorem (import zamówień, wiadomości, dokumenty, faktury, dziennik transakcji) pamiętają, gdzie skończyły ostatnio. Awaria oznacza wznowienie od tego samego punktu przy następnym odpaleniu — bez duplikatów, bez pominiętych rekordów.
  • Blokady throttlingu — minutowa blokada (zobacz API throttling) sama się zwalnia po krótkim czasie, jeśli proces, który ją trzymał, padł.