Chronjob alle 160 Stunden

  • Hallo,


    wie kann ich bei den Geplanten aufgaben eine Seite alle 160 Stunden aufrufen lassen? Ich weiß nicht wie ich die Parameter befüllen muss :(


    Diese Seite:
    http://xxxxxxxx.de/modules/gsi…?token=xxxxxxxf&id_shop=1


    Soll alle 160 Stunden aufgerufen werden, damit die Sitemap neu generiert wird.


    Wäre sehr dankbar über Hilfe.


    LG

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Ich empfehle ebenso den Cronjob einfach wöchentlich laufen zu lassen.


    Die Crontab-Syntax sieht so aus:


    [Blockierte Grafik: http://www.debian-tutorials.com/tutoriale/crontab-syntax.gif]


    Ein passender Eintrag könnte beispielsweise so aussehen:


    Code
    45 3 * * 0 deinscript.sh


    Dies führt immer in der Nacht von Samstag auf Sonntag um 3:45 Uhr morgens das script aus.
    Kalendertag und Kalendermonat sind egal.

    [table='liebe Grüße - schentuu, ']
    [*]~[*] Tutorial-Empfehlung: vi(m) lernen
    [*]Betreibt 3 netcup Root-Server mit Funtoo-Linux [*] IRC von Kunden für Kunden: #nc-kunden (iz-smart.net)
    [*]darunter Minecraft Gameserver, git server, etherpad u.v.m.[*]Für Server Anfänger: Linux Selbsttest
    [/table]

  • Wenn ich den Manuell aufrufe komme ich an das Limit eures XL Hostings :s - Deswegen :(
    Hatte gehofft, das durch so ein Cronjob dieses Limit nicht gilt.


    Kann auch keine Bilder neu berechnen...:/

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Ich bin nun kein Hosting Kunde sondern miete bei netcup Rootserver, doch prinzipiell kann ich sagen:


    Wenn ein Script nicht ausführbar ist, weil es die Limits des Servers übersteigt, dann kann man das auch mit einem Cronjob nicht umgehen.
    Die Limits für das XL Hosting sind aber schon recht hoch eingestellt.
    Wenn dein Script dann immer noch die limits sprengt, dann solltest Du überlegen ob Du das script überarbeiten kannst.


    Entweder ist der Code sehr ungünstig geschrieben, oder du kannst das Script in mehrere Teilschritte zerlegen, die du von mehreren Cronjobs nacheinander im Abstand von 5 Minuten ausführen lässt.


    Auf welches Limit stößt du denn genau?
    Die Spezifikation des Tarifs Expert XL sagt zu den Limits:

    Zitat

    Speicherplatz: 250 GB
    PHP Memory Limit: 512 MB
    PHP Upload Filesize: 128 MB
    PHP Execution Time: 60 s

    [table='liebe Grüße - schentuu, ']
    [*]~[*] Tutorial-Empfehlung: vi(m) lernen
    [*]Betreibt 3 netcup Root-Server mit Funtoo-Linux [*] IRC von Kunden für Kunden: #nc-kunden (iz-smart.net)
    [*]darunter Minecraft Gameserver, git server, etherpad u.v.m.[*]Für Server Anfänger: Linux Selbsttest
    [/table]

    2 Mal editiert, zuletzt von schentuu ()

  • Also wenn ein script in 60 sec nicht durchgelaufen ist, dann besteht da meiner Meinung nach erheblicher Verbesserungsbedarf.
    Hast du das Script selber geschrieben oder irgendwo im Netz bezogen?

    [table='liebe Grüße - schentuu, ']
    [*]~[*] Tutorial-Empfehlung: vi(m) lernen
    [*]Betreibt 3 netcup Root-Server mit Funtoo-Linux [*] IRC von Kunden für Kunden: #nc-kunden (iz-smart.net)
    [*]darunter Minecraft Gameserver, git server, etherpad u.v.m.[*]Für Server Anfänger: Linux Selbsttest
    [/table]

  • Die Execution Time wird auch mit nem Cronjob immer erreicht, wenn sie über den normalen Browseraufruf überschritten wird. Wieso sollte es auch anders sein? Das einzige was passiert ist, dass die Seite über ein Programm wget/curl aufgerufen wird, was nichts anderes als ein normaler GET-Aufruf des Scripts ist.
    Abgesehen dass das Script bei über 60 sek Laufzeit Schrott ist.

  • Nachdem der TO mal wieder nix an Informationen erzählt.
    Es scheint sich um einen PrestaShop zu handeln.


    Das Vorgehen mit dem Cronjob wird so beschrieben:
    How to set up cron job for PrestaShop Google sitemap


    Und hier ist der (wahrscheinliche) Programmcode des Scripts:
    gsitemap/gsitemap-cron.php at master · PrestaShop/gsitemap · GitHub
    Weiter gehts mit createSitemap() hier:
    gsitemap/gsitemap.php at master · PrestaShop/gsitemap · GitHub


    So in einem ersten Überblick würde ich behaupten das ist eine rekursive Funktion die die Sitemap (Zusammenfassung aller Pages des Shops) zusammenbaut.
    Jetzt wäre die Frage: Wie groß ist denn diese Sitemap dass das tatsächlich 60 Sekunden laufen soll?


    Was passiert denn wenn du den Aufruf direkt in der Shell ausführst?
    Gib bitte mal die Ausgaben die du dann siehst! Vorallem würde mich die Ausgabe von PHP interessieren ob der wirklich gegen die max_execution_time schlägt!


    Thomas

  • Zitat

    Nachdem der TO mal wieder nix an Informationen erzählt.


    Tut mir leid, ich habe viel zu tun und nicht immer die Möglichkeit im Minutentakt zu schreiben. Das mag ärgerlich sein aber ich kann es nicht ändern.


    Ja, es ist die max_execution_time, da ich ständig eine Weiße Seite mit entsprechender Meldung sehe, wenn das Script 90 Sekunden läuft. Soviel kann man nämlich maximal einstellen beim XL Hosting Paket.


    Das auslagern über andere CronJob Seiten bringt dann auch nicht mehr viel, wenn bei CronJobs tatsächlich die max_execution_time erreicht wird.


    Von daher kann ich also scheinbar im Moment nicht viel machen, da Ich das Script ja nicht selbst neu schreiben kann.
    Bei ca 2000 Artikeln in 6 Sprachen (also auch 6x Sitemap für de,it,en,es etc.) dauert es in der Tat ewig. Deutlich länger wie 90 Sekunden.

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Bei ca 2000 Artikeln in 6 Sprachen (also auch 6x Sitemap für de,it,en,es etc.) dauert es in der Tat ewig. Deutlich länger wie 90 Sekunden.

    Ich kenne nun die verwendete Shop Software nicht, daher weiß ich nicht ob folgende Überlegung Zielführend ist:


    Kannst Du nicht für jede Sprache einen eigenen Shop betreiben?
    Wenn Du die alle auf die selbe Datenbank connectest müssten die ja auch synchron bleiben.
    Dann würden aber (zu 6 verschiedenen Zeitpunkten) die Aktualisierungen 1/6 der Zeit benötigen.


    Wenn das nicht hilft, dann solltest Du tatsächlich über einen Managed Server nachdenken. Ich habe mal eine Weile für einen anderen Hoster gearbeitet und dort derartige Managed Server für die Kunden betreut.
    Unter anderem Die Shops eines großen deutschen Baumarktes und eines bekannten Elektronikversands.
    Derartige Auftritte liefen auf 5 managed Servern: 1 Load balancer, dahinter 2 Webserver und dahinter 2 synchrone Datenbankserver ...


    Zugegeben, das waren jeweils Branchenriesen mit entsprechend hohem Umsatz an Seitenaufrufen. Aber ein managed Server klingt hier sinnvoll.

    [table='liebe Grüße - schentuu, ']
    [*]~[*] Tutorial-Empfehlung: vi(m) lernen
    [*]Betreibt 3 netcup Root-Server mit Funtoo-Linux [*] IRC von Kunden für Kunden: #nc-kunden (iz-smart.net)
    [*]darunter Minecraft Gameserver, git server, etherpad u.v.m.[*]Für Server Anfänger: Linux Selbsttest
    [/table]

  • Ja, es wurde bereits richtig erwähnt, dass es sich um Prestashop handelt.


    Dort kann man den Shop selbst in verschiedenen Sprachen anbieten. Das mache ich, um auch Französischen oder Englischsprachigen Kunden die Möglichkeit zu geben, den Shop zumindest zu bedienen. Die Artikel sind nach wie vor in Deutsch und auch die Vertragssprache ist deutsch.


    Das Script ist dieses:
    https://github.com/PrestaShop/…/master/gsitemap-cron.php
    bzw:
    https://github.com/PrestaShop/gsitemap


    Ich kann da schon allein wegen mangelnden Programmiertechnischen Möglichkeiten nichts am Script ändern. Geschweige denn, dass ich weiß wie sich das auf den Rest des Shops ausüben würde.
    Ein neu aufrufen nach 30 Sekunden wäre natürlich sinnvoll. Kenne ich auch von z.B. xtc modified so, dass sich das Script nach x Sekunden neu aufruft und da weiter macht. Warum die Profis das da nicht machen kann ich leider nicht sagen.
    Es sorgt auf jeden Fall dafür, dass ich den Shop nicht richtig nutzen kann :/


    Wenn ich jetzt z.B. die Sitemap generieren möchte, erhalte ich nach 90 Sekunden das:


    Hier mal ein Screenshot vom Backend des Moduls:
    [Blockierte Grafik: http://www2.pic-upload.de/thumb/29171989/Sitemap.png]


    Er erstellt für jede Sprache die Sitemap. Das wiederum sorgt dafür das es ganz erheblich dauert. Aber selbst mit nur einer Sprache ist das Script nicht dazu in der Lage die Aufgabe innerhalb von 90 Sekunden zu erfüllen.


    Ein größer Server wäre wirklich gut. Hätte ich gerne. Dann würde der Shop auch schneller laufen.
    Wollte immer das:
    https://www.netcup.de/bestellen/produkt.php?produkt=867


    Aber leider würde ich dann Monat für Monat minus machen. Leider derzeit keine Option für mich.


    Das wider bedeutet dann wohl, dass ich damit leben muss und versuchen irgendwie anders eine Lösung zu finden bzw. den Umsatz steigern.

    Der oben geschriebene Beitrag ist meine persönliche Meinung/Interpretation!
    Im übrigen verweise ich auf §675 Abs. 2 BGB .

  • Wenn deine Artikelbeschreibungen eh nur in Deutsch vorliegen macht es kaum Sinn eine derartige Vielfalt an Sprachen anzubieten.
    Erst recht wenn Du als Vertragssprache nur Deutsch anbietest.


    Überleg mal wie Du Dich als Kunde fühlst, wenn Du etwas bestellen möchtest, und die Vertragsbedingungen liegen nicht in Deiner Sprache vor.
    Also die überwiegende Mehrheit der fremdsprachlichen Besucher wird so einfach nichts bestellen.
    Warum also denen eine Menüführung anbieten?
    Damit der Frust über die halbherzige Übersetzung erst 4 klicks später eintritt?


    Nimm mal alle Sprachen außer Deutsch und Englisch raus und prüfe dann die Scriptlaufzeit!



    Mittlerweile hat dieser Thread aber auch nichts mehr mit dem Eröffnungsposting zu tun.
    Wie der Cronjob anzulegen ist wurde erklärt.
    Auch wenn dies Dein eigentliches Problem garnicht löst.
    Vielleicht sollte mal der Thread-Titel überarbeitet werden ...

    [table='liebe Grüße - schentuu, ']
    [*]~[*] Tutorial-Empfehlung: vi(m) lernen
    [*]Betreibt 3 netcup Root-Server mit Funtoo-Linux [*] IRC von Kunden für Kunden: #nc-kunden (iz-smart.net)
    [*]darunter Minecraft Gameserver, git server, etherpad u.v.m.[*]Für Server Anfänger: Linux Selbsttest
    [/table]