Wie kan me met het volgende helpen?
Ik heb een wordpress / woocommerce webshop waarin ruim 9000 producten staan.
Ik heb een export script welke automatisch elke xx minuten een download kan aanmaken. Dat werkt prima, exporteerd keurig alle 9000 producten naar een csv bestand op een ftp account.
Maar om wat geavanceerdere functies te gebruiken moet je een speciale url aanmaken en die elke gewenste tijd via een cron-job laten uitvoeren.
Dagen ben ik bezig geweest dat ik niet begreep waarom het bestand niet werd aangemaakt op het ftp account tot ik een extra parameter toevoegde: &limit=2000
en ineens werkte het wel maar dan met slechts 2000 van de 9000 producten. &limit=3000 werkt ook nog maar met &limit=4000 wordt simpelweg het betreffende bestand niet meer aangemaakt op de ftp server.
Iemand enig idee waarom via een opdracht vanuit de webshop zelf wel gewoon gaat met 9000 producten maar via een cron-job dus niet?
En uiteraard hoe ik dat kan oplossen.
Ingestelde geheugen voor wordpress staat ingesteld op 2GB dus zou ruim voldoende moeten zijn.
- cron-job probleem
-
29-10-2014, 16:10 #1
- Berichten
- 301
- Lid sinds
- 15 Jaar
cron-job probleem
-
In de schijnwerper
Te koop protogoto.nl - service marktplaats - t.e.a.b.Website te koopGezocht: Verouderde webshops, websites & webapplicatiesWebsite te koopGezocht linkpartners en blogs DA20+ TF20+ | Ruil en Koop | Diverse branchesSEO/Linkbuilding(SEO) Tekstschrijver nodig voor winstgevende teksten?Freelance / Werk -
29-10-2014, 17:22 #2
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: cron-job probleem
Lijkt me dat er connection timeout intreed.
-
29-10-2014, 17:30 #3
- Berichten
- 301
- Lid sinds
- 15 Jaar
Re: cron-job probleem
hoe kan ik dat zien of dat zo is? en hoe zou dat te voorkomen kunnen zijn?
-
29-10-2014, 17:38 #4
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: cron-job probleem
max_execution_time in de php.ini op 0 zetten.
of rechtstreeks in php met ini_set('max_execution_time', 0);
Ik ben niet bekend met wordpress dus weet niet of dat ook in hun instellingen in te stellen is.
-
29-10-2014, 18:01 #5
- Berichten
- 301
- Lid sinds
- 15 Jaar
Re: cron-job probleem
ik heb in systeemstatus van wordpress wel het volgende gevonden:
PHP Time Limit: -1
-
29-10-2014, 18:16 #6
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: cron-job probleem
Er bestaat in PHP wel een time limit functie die dan weer de max_execution_time instelt, alleen de waarde -1 is totaal niet relevant aan die functie.
Ik neem aan dat je toegang hebt tot de server, dan zou je in de wp-config.php (als het nog zo heet) deze regel kunnen plaatsen set_time_limit(0).
Natuurlijk wel eerst controleren of die regel er al niet instaat anders daar gewoon waarde 0 meegeven.
-
29-10-2014, 18:39 #7
- Berichten
- 301
- Lid sinds
- 15 Jaar
Re: cron-job probleem
ik heb het erin gezet en nu staat er
PHP Time Limit: 0
kennelijk had dat er dus wel invloed op.
Maar eens testen wat hij nu doen met die export
-
29-10-2014, 19:05 #8
- Berichten
- 301
- Lid sinds
- 15 Jaar
Re: cron-job probleem
helaas.... dat was niet de oplossing....... heb de &limit=3000 veranderd in &limit=5000 en de cronjob weer gestart en het download bestand wordt dus niet meer aangemaakt.
-
29-10-2014, 19:13 #9
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: cron-job probleem
kun je de url ook niet handmatig aanroepen zodat je misschien foutmeldingen te zien krijgt.
-
29-10-2014, 19:20 #10
- Berichten
- 301
- Lid sinds
- 15 Jaar
Re: cron-job probleem
als ik die handmatig aanroep krijg ik de volgende error: Fatal error: Maximum execution time of 30 seconds exceeded in /home/wns/domains/domein.nl/public_html/wp-includes/meta.php on line 441
In het bestand meta kan ik echter niks vinden over execution time van 30 seconden en ook regel 441 staat niks waar ik wat aan kan afleiden.
-
29-10-2014, 19:33 #11
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: cron-job probleem
is dus toch die max_execution_time,
Maar dat kan kloppen op regel 441 is de tijd overschreden, is niet direct een error maar puur dat het script er langer als 30 seconden over doet
Probeer dit ins in die meta.php
Zet maar ergens boven aan direct de regel na de <?php open tag.
ini_set('max_execution_time', 180)
dan heeft het script 3 min. om z'n taak te volbrengen, dat moet voldoende zijn.
nog wel ; achter de regel zetten om
dus -> ini_set('max_execution_time', 180);Laatst aangepast door harm v. schaijk : 29-10-2014 om 19:41
-
30-10-2014, 10:45 #12
- Berichten
- 301
- Lid sinds
- 15 Jaar
Re: cron-job probleem
Bedankt Harm,
nu doet hij het inderdaad wel met de 9000 producten. zit kwa tijd op het randje dus misschien nog iets meer tijd geven maar bij handmatig aanroepen maakt hij de file keurig aan. eens kijken of met cron-job straks ook goed gaat.
-
30-10-2014, 12:52 #13
- Berichten
- 66
- Lid sinds
- 11 Jaar
Re: cron-job probleem
Graag gedaan,
Je zou de tijd ook in plaats van 180 op 0 kunnen zetten dan treed er geen timeout op, altijd handig als je producten catalogus uitbreid.
-
30-10-2014, 12:54 #14
- Berichten
- 980
- Lid sinds
- 17 Jaar
Re: cron-job probleem
Een cronjob die via commandline gedraaid wordt (dus niet via wget <url>) heeft geen execution limit. Dat is dus sowieso aan te raden bij dit soort intensieve dingen. Verder moet de cron zo opgebouwd worden dat hij niet nodeloze variabelen en gegevens in memory houd, dit kan je opvangen om binnen loops net voor het einde variabelen te unsetten (unset(x, y)).
Overigens is het onverstandig in je php.ini de max execution time op onbeperkt te zetten, hierdoor kan de server overbelast worden wanneer de url online beschikbaar is. Dat is ook de reden dat die limiet niet bestaat in cli (commandline).
-
30-10-2014, 13:05 #15
- Berichten
- 301
- Lid sinds
- 15 Jaar
Re: cron-job probleem
de cronjob maakt gebruik van wget en heeft diverse variabelen zoals wel of geen voorraad, downloaden, ftp of e-mail en zo nog een stuk of 6 variabelen.
Met die variabelen kan ik met 1 script diverse verschillende feeds genereren.
Of hij die in memory houd heb ik geen idee, ik ben blij dat ik uitgevogeld heb hoe ik een cron-job kon aanmaken en dat die nu ook nog werkt.
Overigens kan ik de cron-job beveiligen door een geheime code aan de url toe te voegen in de cron-job zodat hij niet zo aangeroepen kan worden.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic