1CRM: Taskplaner führt Task nicht erfolgreich aus - Cron Job scheitert

Status
Für weitere Antworten geschlossen.

sven-p

Benutzer
Mitglied seit
18. Feb 2014
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Hallo, ich habe nun schon viel gegoogelt und probiert und komme einfach nicht dahinter. Ich habe auf meiner DS 718+ 1CRM (Startup-Plus-8.5.9) installiert und versuche verzweifelt die Emailsynchronisation in Gang zu bringen.
Ich habe dazu einen Task mit dem Benutzer Admin erstellt, der auch Lese- und Schreibrechte im Verzeichnis hat.
Unter "Benutzerdefiniertes Script" habe ich folgendes eingetragen:
Rich (BBCode):
cd /volume1/web/meincrm/;
/usr/bin/php scheduler.php > /volume1/logs/crm.log
Im Error-Log ist Folgendes zu lesen: "]Error connecting to database".
Die Angaben zur Datenbank sind korrekt, es ist das selbe file, was von der Website selbst benutzt wird. Ich denke, es liegt am Benutzer, blicke da aber einfach nicht durch :(
Auch habe ich bereits einen Eintrag per SSH probiert - leider auch erfolglos. Die Beschreibung ist hier zu finden: https://1crm-system.de/anleitungen/zeitplaner-einrichten/

Hat vielleicht jemand Erfahrung mit Synology und 1CRM? Ich wäre echt dankbar für jede Idee!

--------------------------------------------------
DS718+ / DSM 6.2.2-24922 Update 3
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Hi,
Hallo, ich habe nun schon viel gegoogelt und probiert und komme einfach nicht dahinter.
Die Forum Suche auch? Was du ausführst findet sich hier zuhauf.
Synology‘s DSM hat einige Besonderheiten was den Aufbau angeht und du nutzt eine davon; sein PHP. Hier fehlt die mysql extention, bitte nicht blind aus einem Wiki was abtippen nur weil Linux drauf steht.:p
Dein Betrag glänzt auch nicht gerade mit vorbildlichen Infos: Wie wurde installiert und welche Version vom PHP wird benutzt? :confused:
Angenommen du hast Webstation und PHP7 im Einsatz könnte der PHP-Aufruf mit Übergabe seiner Config so aussehen:
Rich (BBCode):
/usr/local/bin/php70 -c /usr/syno/etc/packages/WebStation/php70/conf.d/user_settings.ini /var/services/web/meincrm/scheduler.php > /volume1/logs/crm.log

Bob
 

sven-p

Benutzer
Mitglied seit
18. Feb 2014
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Hallo Bob, vielen Dank für deine Antwort. Das hat nun endlich funktioniert. Bei meiner Suche war ich vielleicht tatsächlich etwas ungeduldig oder einfach blind - ich werde mich bessern, versprochen ;-)
Du schreibst, es fehle die mysql-Extension. Tatsächlich schlage ich mich nun mit folgendem System-Log-Eintrag des 1CRM:
Rich (BBCode):
2019-09-18 21:44:39,897574 [8312] WARNING - *EmailImport* : Hit maximum message download limit (50 messages), finishing.
2019-09-18 21:45:14,956928 [21043] ERROR - Scheduler [Retrieve User and Group Email]: Task terminated prematurely
2019-09-18 22:05:01,886522 [23600] CRITICAL - Error connecting to database: MySQL extension not loaded
2019-09-18 22:45:29,678205 [31659] WARNING - *EmailImport* : Hit maximum message download limit (50 messages), finishing.
2019-09-18 22:50:40,214168 [31871] ERROR - Scheduler [Retrieve User and Group Email]: Task terminated prematurely
2019-09-18 23:05:01,643009 [32526] CRITICAL - Error connecting to database: MySQL extension not loaded
2019-09-19 0:05:02,121822 [2636] CRITICAL - Error connecting to database: MySQL extension not loaded
2019-09-19 1:05:01,998970 [5353] CRITICAL - Error connecting to database: MySQL extension not loaded
2019-09-19 2:05:01,783142 [8340] CRITICAL - Error connecting to database: MySQL extension not loaded
2019-09-19 3:05:01,282532 [10956] CRITICAL - Error connecting to database: MySQL extension not loaded
2019-09-19 4:05:02,182724 [13554] CRITICAL - Error connecting to database: MySQL extension not loaded
2019-09-19 5:05:01,616461 [16117] CRITICAL - Error connecting to database: MySQL extension not loaded

Kann mir hier jemand sagen, was da schiefläuft?
Auch scheint der Abruf relativ willkürlich. Im Zeitplaner des 1CRM und im Taskplaner der Synology habe ich den Intervall auf 10min gestellt. Status

Der Zeitplaner gibt folgenden Status an:
Rich (BBCode):
Die zeitlich geplante Aufgabe ist fehlgeschlagen, das bedeutet sie hat die Zeitbegrenzungüberschritten, oder es trat eine Störung bei der Ausführung auf.
Der Synology Taskplaner:
Rich (BBCode):
Cannot load Zend OPcache - it was already loaded

So schaut die Log-Datei des Scripts (/volume1/logs/crm.log) aus:
Rich (BBCode):
Running

[s[K            0% Send Event Reminders[u
[s[K          100% Send Event Reminders[u

[s[K            0% Run Scheduled Reports[u
[s[K          100% Run Scheduled Reports[u

[s[K            0% Send Activity Notifications[u
[s[K          100% Send Activity Notifications[u

[s[K            0% Process Workflow[u
INFO> Processed 0 pending action(s)

[s[K          100% Process Workflow[u

[s[K            0% send_apns[u
[s[K          100% send_apns[u

[s[K            0% initial_leadguerrilla_push[u
[s[K          100% initial_leadguerrilla_push[u
Run completed successfully.

Vielen Dank!
 
Zuletzt bearbeitet:

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Hi;
Deine Fragen beziehen sich jetzt wieder auf die scheduler.php ?
Du verwendest PHP7.0 ?
Läuft ein Cron Task würde ich keinen Task mehr innerhalb vom CRM aktivieren. Im der Online Doku steht das wird erkannt und der Status entsprechend aktualisiert; Na ja beim DSM so ne Sache ;)
Ich wage mal zu orakeln das erklärt warum hier immer noch einer die DSM eigene PHP Version aufruft.

Ich habe dazu einen Task mit dem Benutzer Admin erstellt, der auch Lese- und Schreibrechte im Verzeichnis hat.

Die Webstation nutzt die Gruppe http und den gleichnamigen User http.
Erforderliche Verzeichnisrechte auf Ihrem Webspace werden ihm auch vollständig zugesprochen. Warum also der admin?

Bob
 

sven-p

Benutzer
Mitglied seit
18. Feb 2014
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Aus gesundheitlichen Gründen musste das Projekt jetzt erstmal ruhen. Nun bin ich zurück und würde mein Problem gern lösen. Vielleicht hat der Bob Lust, nochmal zu helfen?
Den Benutzer Admin habe ich verwand, weil das Log-file ja nicht im Web-Verzeichnis geschrieben wird. Und ja, du hast Recht, ich verwende PHP 7.0. Kann ich eigentlich auch ein anderes PHP-Profil angeben? Beispielsweise hatte ich eines mit mehr Speicher erstellt, habe dann aber dem default-Profil mehr Speicher erlaubt.

Ich erhalte nun noch immer folgende Meldung: "Cannot load Zend OPcache - it was already loaded". Ich hätte gern mit PHP 7.2 getestet, aber hier fehlt die Erweiterung mcrypt :-(
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
1
Punkte
38
Vielleicht hat der Bob Lust, nochmal zu helfen?
Einen Tipp hab ich noch und bitte immer stehst jede Frage beantworten, das spart Zeit!

Also, durch das anlegen div. PHP Profile hast du die Webstation verändert. Es wird nun an mehreren Stellen Einstellungen geladen, daher dieser Hinweis.
Jetzt gilt es herauszufinden wo die aktive user_settings.ini liegt um den Aufruf der scheduler.php richtig zu setzten.

Je nach Anzahl der Profile findet sich immer ein Ordner mit einer recht kryptischen Zwischenfolge hier:
Rich (BBCode):
ls -ll /usr/syno/etc/packages/WebStation/php_profile/

So sieht das bei mir aus:
drwxr-xr-x 3 root root 4096 Nov 10 10:57 9f1e642a-0d20-4664-8934-c51d34f609de
drwxr-xr-x 3 root root 4096 Nov 10 10:57 bad43415-0464-4a95-a841-1b8de52ad62a

Du musst dir in diesem Fall jede ini ansehen; Geht auch einfacher z.B. angenommen für das Setup von 1CRM hast du die Speichernutzung auf 512 MB angehoben, dann könnte eine einfache Suche wie folgt lauten:
Rich (BBCode):
cat /usr/syno/etc/packages/WebStation/php_profile/bad43415-0464-4a95-a841-1b8de52ad62a/conf.d/user_settings.ini |grep memory_limit
memory_limit = 512M

Hast du die richtige INI gefunden starte den Aufruf ohne logfile Umleitung unter der Webstation:
Rich (BBCode):
sudo -u http \
/usr/local/bin/php70 -c \
/usr/syno/etc/packages/WebStation/php_profile/bad43415-0464-4a95-a841-1b8de52ad62a/conf.d/user_settings.ini \
/var/services/web/1CRM/scheduler.php

Hilft das immer noch nicht, könnte der Versuch nicht schaden ein eigenes PHP Profil nur für den Scheduler, ohne opcache, anzulegen.
Unter den erweiterten Einstellungen Kern > dropdown > core > opcache.enable > 0

Konsolenabfrage:
Rich (BBCode):
cat /usr/syno/etc/packages/WebStation/php_profile/bad43415-0464-4a95-a841-1b8de52ad62a/conf.d/user_settings.ini |grep opcache.enable
opcache.enable = 0

Diese Änderungen werden erst nach einem Service bzw. System reboot aktiv.

Bob
 

sven-p

Benutzer
Mitglied seit
18. Feb 2014
Beiträge
20
Punkte für Reaktionen
0
Punkte
0
Hallo Bob,
habe vielen Dank für deine ausführliche Anleitung. Das hat mir sehr geholfen, auch die Synology ein wenig besser zu verstehen.
Ich habe für die Synchronisation nun noch ein eigenes Profil angelegt, was aus meiner Sicht auch eine saubere Lösung ist. Das Profil habe ich mit deiner Beschreibung dann auch schnell identifiiert. "cat" und "grep memory_limit" habe ich zwar nicht genutzt, aber nach Anpassung der Pfade und opcache.enable=0 hat alles ohne weitere Fehler funktioniert.

Nochmals vielen Dank - ich bin echt froh, dass nun alles läuft!

Schöne Grüße und Hut ab!
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat