====== Zeitgesteuerte Aufgaben ====== SoSci Survey erlaubt einige zeitgesteuerte Funktionen, z.B. die Übertragung von Interviews in die Datenbank bei niedriger Serverlast ([[caching|Schreibcache für Interviews]]), den zeitgesteuerten Versand von Serienmails oder (noch in Entwickung) eine regelmäßige Benachrichtigungen über die Anzahl der Befragungsteilnehmer. Für die korrekte Ausführung der zeitgesteuerten Funktionen muss das Skript ''admin/crontask.php'' regelmäßig ausgeführt werden. Empfohlen wird ein Aufruf alle 1-5 Minuten -- rufen Sie das Skript seltener auf, kann der Zeitpunkt wann eine Aufgabe abgearbeitet wird, stärker vom geplanten Zeitpunkt abweichen. Den absoluten Pfad zum PHP-Skript, welches Sie für die Einrichtung der zeitgesteuerten Ausführung benötigen, finden Sie unter **Server-Einstellungen** -> **Konfiguration** -> Karteireiter //Server// -> //Skript für Crontask//. **Wichtig:** Die [[de:server:maintenance|regelmäßige Wartung des Servers]] mittels ''admin/cronjob.php'' muss unabhängig von der Übertragung des Cache durchgeführt werden. Hier ist ein Intervall von 24 Stunden angemessen. ===== Linux ===== Um das Skript auf einem Linux-System alle 5 Minuten auszuführen, tragen Sie folgenden Cronjob ein. Das Passwort legen Sie in SoSci Survey in der **Server-Verwaltung** unter **Server-Einstellungen** fest. Der `crontab` sendet die Ausgabe des Scripts standardmäßig per E-Mail. Um das zu vermeiden, legen Sie ein kleines Bash-Script an, welches sich um den Aufruf kümmert: #!/bin/bash cd /var/www/sosci/html/admin/ /usr/bin/php /var/www/sosci/html/admin/crontask.php password=SECRET Dieses Script muss das "excetuable flag" bekommen, z.B. mittels ''chmod u+x crontask.sh''. Der Pfad von ''php'' kann variieren, z.B. ''/usr/lib/cgi-bin/php''. Testen Sie den Aufruf des Scripts in der Konsole. Anschließend können Sie einen Cronjob anlegen, welcher die Ausgabe verwirft: # m h dom mon dow command */1 * * * * /var/www/script/crontask.sh >/dev/null 2>&1 Um den Cronjob anzulegen, verwenden Sie ''crontab''. Legen Sie den Cronjob für den Linux-Nutzer an (im folgenden Beispiel ''www-data''), mit dessen Rechten auch der Webserver läuft. So vermeiden Sie Probleme mit Zugriffsrechten. sudo crontab -e -u www-data ===== Windows ===== Unter Windows ist für die regelmäßige Ausführung von Skripten der Aufgabenplaner zuständig (Geplante Tasks, Aufgabenplanung). Zunächst ist eine ausführbare Datei erforderlich, welche den PHP-Interpreter aufruft und das PHP-Skript als Parameter übergibt -- etwa eine einfache Batch-Datei (''*.bat''). Die Pfade im folgenden Beispiel müssen an die jeweilige Installation angepasst werden. C:\php\php.exe C:\webserver\documents\sosci\admin\crontask.php password=SECRET Führen Sie die Datei testweise aus, um die Pfade zu überprüfen. Die regelmäßige Ausführung dieser Datei wird anschließend im Aufgabenplaner als Aufgabe erstellt. * Windows XP: Systemsteuerung -> Geplante Tasks -> Geplanten Task hinzufügen ([[http://stefan-meissner.com/ein-cronjob-unter-windows/|Ein Cronjob unter Windows]]) * Windows 7: Systemsteuerung -> Verwaltung -> Aufgabenplanung -> Aufgabe erstellen ([[http://windows.microsoft.com/de-de/windows/schedule-task#1TC=windows-7| Planen eines Tasks]]) * Windows 8: Ausführen (Windows-Taste + R) -> ''taskschd.msc'' eintippen -> OK -> Aktion -> Einfache Aufgabe erstellen ([[http://bits-meet-bytes.de/windows-8-1-aufgabenplanung/|Windows 8.1 Aufgabenplanung]])