Czym są kolizje harmonogramu

Po uruchomieniu usługi harmonogram wykonuje zadania w tle według ustalonego planu.

Kolizja oznacza sytuację, w której poprzednie zadanie nie zakończyło się przed planowanym rozpoczęciem kolejnego zadania harmonogramu.

Przykład:

  • harmonogram uruchamia zadania co 5 minut,
  • wykonanie synchronizacji zajmuje 7 minut,
  • po 5 minutach rozpoczyna się kolejny cykl,
  • integrator zapisuje kolizję.

Sama obecność kolizji nie oznacza jeszcze problemu.

Liczba kolizji prezentowana jest z ostatnich 7 dni. Jeżeli harmonogram uruchamia się co 5 minut, to w ciągu tygodnia wykonuje ponad 2000 cykli. Kilkanaście lub nawet kilkadziesiąt kolizji w takim okresie nie musi oznaczać nieprawidłowego działania programu.

Kiedy należy reagować

Warto przeprowadzić diagnostykę, gdy:

  • liczba kolizji stale rośnie,
  • zamówienia pojawiają się z opóźnieniem,
  • aktualizacja towarów trwa bardzo długo,
  • dokumenty nie są wysyłane na bieżąco,
  • liczba pozycji „Wybranych” w synchronizacji stale rośnie.

Najczęstsze przyczyny kolizji

1. Nieaktualna wersja programu

Każda aktualizacja zawiera poprawki wydajności oraz optymalizacje działania. Zalecamy korzystanie z najnowszej wersji programu.

Aktualizację można sprawdzić z poziomu:

Program > Informacje > Sprawdź aktualizacje

2. Nieprawidłowa konfiguracja harmonogramu

Nie zalecamy mieszania harmonogramów interwałowych z harmonogramami uruchamianymi o określonych godzinach. Najbezpieczniejszym rozwiązaniem jest utworzenie jednego wspólnego zadania wykonywanego w stałym interwale, np.: Zamówienia, Ceny i Aktualizacja zwrotna co 5 min:

Jeżeli niektóre zadania mają być wykonywane tylko okresowo (np. aktualizacja zdjęć lub pełny eksport towarów), warto utworzyć dla nich osobne zadania wykonywane o określonych godzinach. Należy jednak pamiętać, że nie powinno się mieszać harmonogramów interwałowych z harmonogramami wykonywanymi o konkretnych godzinach.

Jeżeli część zadań realizowana jest według harmonogramu godzinowego, pozostałe zadania również powinny zostać rozpisane na konkretne godziny tak, aby poszczególne operacje nie uruchamiały się jednocześnie.

3. Zbyt krótki interwał harmonogramu

Najczęściej problem występuje wtedy, gdy wykonanie wszystkich zadań zajmuje więcej czasu niż odstęp między kolejnymi uruchomieniami.

Przykład:

  • uruchomienie Subiekta nexo PRO przez Sferę - 1 minuta,
  • import zamówień - 1 minuta,
  • synchronizacja towarów - 2 minuty,
  • aktualizacja zwrotna - 1 minuta.

Łącznie około 5 minut.

Przy harmonogramie ustawionym co 5 minut nawet niewielkie spowolnienie może powodować kolizje.

W przypadku Subiekta nexo PRO należy uwzględnić czas potrzebny na uruchomienie połączenia przez Sferę.

Na wolniejszych stanowiskach może to trwać nawet około minuty. Czas ten jest zbliżony do czasu ręcznego uruchamiania Subiekta na danym stanowisku i również należy go uwzględnić przy planowaniu interwału harmonogramu.

4. Brak mechanizmu Śledzenia zmian

Bez aktywnego Śledzenia zmian integrator musi każdorazowo analizować pełną listę towarów. Powoduje to znaczące wydłużenie synchronizacji. W większości przypadków aktywne Śledzenie zmian jest podstawowym elementem zapewniającym wydajną pracę harmonogramu.

5. Nieprawidłowe filtrowanie towarów

Jest to jedna z najczęstszych przyczyn kolizji. Jeżeli synchronizacja obejmuje kilka tysięcy produktów, a faktycznie w sklepie sprzedawanych jest kilkaset, program może niepotrzebnie analizować dużą liczbę kartotek.

Optymalnie liczba towarów objętych synchronizacją powinna odpowiadać rzeczywistej liczbie produktów wykorzystywanych w e-commerce.

Pomocne może być narzędzie Podgląd powiązań towarów, które pozwala sprawdzić, jakie produkty są obecnie powiązane ze sklepem. Narzędzie umożliwia również zbiorcze nadawanie znaczników lub innych parametrów, które następnie można wykorzystać do filtrowania produktów. Dzięki temu synchronizacja może zostać ograniczona wyłącznie do towarów faktycznie wykorzystywanych w sprzedaży internetowej.

6. Zaległe aktualizacje zwrotne

Przyczyną kolizji może być również duża liczba oczekujących aktualizacji zwrotnych.

Najczęściej dotyczy to:

  • archiwalnych dokumentów PDF oczekujących na wysyłkę,
  • dokumentów sprzedaży, które nie zostały wcześniej przesłane do sklepu,
  • długotrwale wyłączonego harmonogramu.

Objawem może być komunikat widoczny pod listą zamówień informujący o dużej liczbie dokumentów PDF oczekujących na wysłanie.

W takiej sytuacji warto:

7. Czasochłonne zadania harmonogramu

Należy unikać dodawania akcji do zadań harmonogramu, które rzadko zmieniają się od strony Subiekta i nie wymagają aktualizacji.

Szczególną uwagę należy zwrócić na:

  • Zdjęcia,
  • EksportTowarów,


EksportTowarów i EksportTowarów_Nowe to dwa różne zadania.

EksportTowarów - wysyła pełną listę produktów przy każdym uruchomieniu.

EksportTowarów_Nowe - wysyła wyłącznie produkty wymagające synchronizacji.

W większości przypadków zalecamy korzystanie z zadania EksportTowarów_Nowe. Jeśli zadanie EksportTowarów_Nowe nie jest widoczne w zadaniach harmonogramu to należy włączyć Śledzenie zmian.

8. Kilka plików konfiguracyjnych lub kilka licencji

Dotyczy tylko zaawansowanych scenariuszy wykorzystujących kilka konfiguracji w ramach jednej licencji lub kilka licencji aktywnych na jednym stanowisku.

Każda konfiguracja wykonywana jest osobno. Integrator przełącza się pomiędzy konfiguracjami i wykonuje je kolejno.

Przy wielu konfiguracjach należy uwzględnić czas:

  • wykonania wszystkich akcji na danej konfiguracji
  • ponownego połączenia z bazą ERP (jeśli jest osobna)

Jeżeli wszystkie konfiguracje obsługują te same towary, synchronizacja produktów powinna odbywać się tylko na jednej konfiguracji. Najprostszym rozwiązaniem jest pozostawienie zadań synchronizacji towarów we wspólnym harmonogramie, a w pozostałych konfiguracjach zastosowanie takiego filtrowania produktów, aby lista towarów była pusta. Dzięki temu integrator nie będzie wykonywał aktualizacji stanów magazynowych, cen ani innych parametrów produktów na tych konfiguracjach, skracając czas wykonywania harmonogramu.

Przy większej liczbie konfiguracji często konieczne jest wydłużenie interwału harmonogramu.

Test własny - jak sprawdzić rzeczywisty czas wykonywania zadań

Najprostszym sposobem diagnozy jest ręczne wykonanie tych samych operacji, które wykonuje harmonogram.

  1. Uruchom program SubSync jako administrator.
  2. Sprawdź jakie zadania są przypisane do harmonogramu:

Program > Konfiguracja (F9) > Harmonogram > Konfiguruj harmonogram

  1. Zatrzymaj usługę harmonogramu:

Program > Konfiguracja (F9) > Harmonogram > Zatrzymaj

lub

Konsola użytkownika > Usługa SubSyncService > Zatrzymaj

  1. Ręcznie wykonaj wszystkie operacje przypisane do harmonogramu, np:

  1. Zmierz czas wykonania każdej operacji.

Jeżeli suma czasów mieści się w interwale harmonogramu z odpowiednim zapasem, konfiguracja jest prawidłowa.

Jeżeli nie, należy przejść do dalszej diagnostyki.

Jeżeli wykorzystywanych jest kilka plików konfiguracyjnych, test należy wykonać dla każdej konfiguracji osobno i zsumować uzyskane czasy.

Diagnostyka synchronizacji towarów 

Mechanizm Śledzenia zmian działa poprawnie tylko wtedy, gdy lista synchronizowanych produktów jest odpowiednio ograniczona przez filtrowanie.

Po uruchomieniu programu proszę przejść do Import/eksport towarów:

Sprawdź w dolnej części okna znajdują się pola WszystkichWybranych

Wszystkich - liczba wszystkich towarów objętych synchronizacją.

Wybranych - liczba towarów oczekujących na wykonanie operacji synchronizacji.

W prawidłowo działającej konfiguracji liczba Wybranych po zakończeniu synchronizacji powinna spaść do niewielkiej wartości odpowiadającej bieżącym zmianom w Subiekcie.

Jeżeli liczba Wybranych stale utrzymuje się na wysokim poziomie, oznacza to najczęściej:

  • nieprawidłowe filtrowanie,
  • błędne powiązania towarów,
  • towary blokujące kolejkę synchronizacji.

Pomocne może być narzędzie Podglądu powiązań towarów.

Optymalnym ustawieniem jest sytuacja, w której liczba Wszystkich odpowiada rzeczywistej liczbie produktów wykorzystywanych w sklepie internetowym.

Kolizje - jak interpretować licznik

Harmonogram uruchamiany co 5 minut wykonuje 288 cykli dziennie. W ciągu 7 dni daje to 2016 możliwych uruchomień. Nawet po usunięciu przyczyny problemu licznik nie spadnie natychmiast do zera, ponieważ prezentuje historię z ostatnich 7 dni. W kolejnych dniach wartość powinna sukcesywnie maleć.

Licznik kolizji odczytywany jest z pliku:

C:\Program Files (x86)\RTNET\SubSync2\SubSyncService.exe.log.txt

Aby wyzerować historyczne wpisy, można przenieść ten plik do innego folderu lub go usunąć. Pozwoli to sprawdzić, czy nowe kolizje nadal są generowane