Rules Scheduler feuert nicht nach gegebenem Zeitintervall
am 23.11.2014 - 21:12 Uhr in
Hallo liebe Drupal-Gemeinde,
ich habe irgendwo einen lästigen Fehler...
undzwar lasse ich nach +15 days auf ein Event eine Mail verschicken. Jedoch kommt die nicht dann, sondern bereits am nächsten Tag oder mal erst nach 5 Tagen...wie auch immer.
An was kann das liegen? Mit dem Scheduler habe ich grundsätzlich noch nicht so viel Glück gehabt...vertragen tut sich der nämlich scheinbar auch nicht mit dem locale-Modul. Wenn ich auf den Scheduler-Reiter klicke kommt folgende Fehlermeldung (die kommt aber schon seit immer)
Warning: Illegal offset type in isset or empty in locale() (Zeile 713 von /www/htdocs/w011bdd2/drupal/modules/locale/locale.module).
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 'Tid' AND s.context = '' AND s.textgroup = 'default'' at line 1: SELECT s.lid, t.translation, s.version FROM {locales_source} s LEFT JOIN {locales_target} t ON s.lid = t.lid AND t.language = :language WHERE s.source = :source_0, :source_1 AND s.context = :context AND s.textgroup = 'default'; Array ( [:language] => de [:context] => [:source_0] => Tid [:source_1] => Tid ) in locale() (modules/locale/locale.module).
Kann mir hierbei jemand weiterhelfen, wieso ich nicht das richtige Zeitintervall bekomme?
Vorab vielen Dank,
Max
- Anmelden oder Registrieren um Kommentare zu schreiben
Hallo Max,ich vermute mal,
am 24.11.2014 - 03:47 Uhr
Hallo Max,
ich vermute mal, dass der Scheduler über den Drupal internen Cron läuft.
Dieser ist sehr ungenau, da er davon abhängt, dass ein Drupal Benutzer
wenn er die Seite besucht den Job im Hintergrund anstösst.
Besucht erst 5 nach Tagen ab dem Event ein Benutzer die Seite bekommst Du das Mail auch erst 5 Tage später.
Hier solltest Du einen externen Cron einrichten, der täglich oder stündlich ausgeführt wird.
Das ist um einiges genauer ;-)
Zu Deiner Fehlermeldung:
Das hat etwas mit deiner Taxonomieübersetzung zu tun.
:source_0] => Tid [:source_1] => Tid
In source_0 source_1 sollte nicht Tid stehen sondern eine Zahl (Taxonomie ID)
Evtl. hilft es diese neu zu erstellen und zu übersetzen.
Aber mach vorher besser ein Backup ;-)
Viel Glück
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hallo Robert! Vielen Dank für
am 24.11.2014 - 07:36 Uhr
Hallo Robert!
Vielen Dank für deine Nachricht! Ja, einen externen Cron einzurichten wäre im grunde kein problem, jedoch kanns an dem fast nicht liegen, wenn ich das richtig verstehe. Schliesslich wird die mail nicht zu spät sondern wesentlich zu früh verschickt. So als wäre bei der strtotime was schief gelaufen bzw. bei der generierung des timestamp innerhalb des schedulers beim ausführen der rule...
Ich kann mir das nicht erklären...
Was kann ich hier ändern? Soll ich da was im code ändern oder einen eintrag in der Datenbank?
Vorab vielen Dank!
Max
Hmm, sorry ich dachte es
am 24.11.2014 - 08:57 Uhr
Hmm,
sorry ich dachte es läuft bei Dir über cron.
Dann würde ich mal das Datum und Zeitzonen checken.
Da gibt es ja mehrere
PHP DateTime (phpinfo)
Dann hat es Zeitzonen Einstellungen in Drupal
Benutzerbezogen und Seitenbezogen.
Schau auch mal das Datum in Firebug an welches der Server sendet.
evtl. kannst Du ja in der Datenbank in der Tabelle des schedulers das Datum auslesen und nachvollziehen.
Zur Fehlermeldung kann ich Dir nicht viel raten, ausser das Scheduler Modul zu deinstallieren und nochmal zu installieren.
Der Fehler hängt jedenfalls zusammen mit context und taxonomie, wie ich glaube.
LG
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)