Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zwiększyć czas wykonywania skryptu lub podzielić wykonywanie na kilka części, (bez ingerencji w pliki konfiguracyjne serwera)
marcin909090
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 4.11.2015

Ostrzeżenie: (0%)
-----


Witam, piszę wtyczką pod WooCommerce importującą produkty do sklepu internetowego z plików XML/CSV.
Problem nie dotyczy małej ilości produktów. Podczas gdy jest ich kilkaset lub kilka tysięcy skrypt potrzebuje określonego czasu, żeby je dodać.
Niestety w pewnym momencie się przerywa i wyrzuca komunikat "504 Gateway Time-out".
Działanie jakie wykonałem :
- Dodałem do moich plików php
  1. ini_set('memory_limit', '-1');
- Zwiększyłem limit pamięci w Wordpressie
- Zmieniłem max_execution_time na serwerze na 120

Zauważyłem, że jestem w stanie dodać około 300 produktów więcej co w całości daje około 700. Jest to zdecydowanie za mało.

Moje pytanie to, czy jest jakaś możliwość wydłużenia czasu działania skryptu bez ingerencji w serwer lub czy macie pomysł na inne rozwiązanie. Moja aplikacja to wtyczka więc różni ludzie na różnych serwerach będą z niej korzystali. Ma być uniwersalna i NIE może wymagać od użytkownika zmiany ustawień serwera.
Istnieje podobna amerykańska wtyczka (płatna), która oferuje takie działanie, a sposób importu produktów to dzielenie ich w części po 20 produktów, usuwanie informacji, import kolejnych 20, usuwanie informacji i tak do momentu zaimportowanie wszystkich produktów do sklepu WooCommerce.

Macie jakiś pomysł jak osiągnąć taki efekt lub sprawić, żeby nie było limitu czasowego przy działaniu skryptu nie ingerując w ustawienia serwera ?



Ten post edytował marcin909090 19.01.2016, 12:49:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
session
post
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 22
Dołączył: 11.04.2010
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


Cytat
wtedy następuje edycja

Edycja czego ? Tych plików CSV/XML czy rekordów w bazie ?

Generalnie masz z tego skrypt który czyta pliki fragmentarycznie i coś z odczytanym fragmentem będzie robił, a co to zależy tylko od Ciebie, czy będzie wstawiał je do bazy korzystając z funkcji WP, czy będzie tylko wyświetlał, czy cokolwiek potrzebujesz. Skrypt teoretycznie mógłby zostać uruchomiony z CRONa, ale blokada nastąpi w miejscu, w którym użyjesz jakiejś funkcji z WP, co jest raczej bardzo prawdopodobne (w innym przypadku znaczy, że zrobiłeś coś źle (IMG:style_emoticons/default/tongue.gif) ). Tylko pytanie czy w ogóle potrzebujesz tego skryptu w CRONie, czy w ogóle CRON to dobre rozwiązanie w tej sytuacji, przecież możesz w momencie edycji produktu (i dodania nowego) od razu updateować wpisy w bazie. Generowanie całego pliku CSV/XML i analizowanie go dla 1 wpisu to trochę marnotrawstwo. Btw nie każdy serwer ma obsługę CRONa więc kolejny raz wprowadzasz ograniczenia.

Ten post edytował session 11.02.2016, 12:33:40
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 08:30