Schemalagda uppgifter
  • 08 Apr 2024
  • 5 Protokoll att läsa

Schemalagda uppgifter


Article Summary

Totara 'cron'-processen är ett PHP-skript (del av standardinstallationen av Totara) som måste köras regelbundet i bakgrunden. Det rekommenderas starkt att frekvensen av cron är inställd på att vara minst en gång per minut. Totara cron-skriptet kör olika uppgifter med olika schemalagda intervall, som kan konfigureras av en platsadministratör.

Hoppa inte över att konfigurera cron-processen på din server för din Totara. Din webbplats kommer inte att fungera korrekt utan den.

Ett specialprogram, cron, används för att köra Totara cron-skriptet med ett regelbundet intervall. Totara cron-skriptet kör uppgifter inklusive att skicka e-post, uppdatera Totara-rapporter, RSS-flöden, aktivitetsslutföranden, publicera forummeddelanden och andra uppgifter. Eftersom olika uppgifter har olika scheman kommer inte alla uppgifter att köras i Totara när cron-skriptet utlöses.

Cron-programmet (som kör Totara-skriptet) är en central del av Unix-baserade system (inklusive Linux och OSX) som används för att köra många tidsberoende tjänster. På Windows är den enklaste lösningen att skapa en uppgift i Windows Task Scheduler och ställa in den så att den körs med jämna mellanrum. På delad hosting, bör du hitta dokumentationen (eller be support) hur cron är konfigurerad.

Uppgiften innebär att lägga till ett enda kommando till listan över cron-aktiviteter på ditt system. På Unix-baserade system är den här listan en fil som kallas en crontab som alla användare har.

Cron-kommando

Totara har två olika sätt att distribuera cron som använder olika skript inom Totara-installationen. Dessa är följande:

  • CLI-skriptet (tolk för kommandorad): Detta kommer att vara på vägen /path/to/Totara/admin/cli/cron.php. Om du är osäker är detta rätt skript att använda. Detta måste köras av ett PhP CLI-program på din dator. Det slutliga kommandot kan se ut som /usr/bin/php /path/to/Totara/admin/cli/cron.php. Du kan (och bör) prova detta på din kommandorad för att se om det fungerar.
  • Det webbaserade skriptet: Detta måste köras från en webbläsare och kommer att nås via en webbadress URL som liknar http://your.totara.site/admin/cron.php. Du kan hitta kommandoradsbaserade webbläsare (t.ex. wget), så det slutliga kommandot kan se ut som /usr/bin/wget  http://your.totara.site/admin/cron.php. Detta har fördelen att det kan köras var som helst. Om du inte kan få cron att fungera på din maskin kan den köras någon annanstans.

Cron schemaläggar-UI för webbplatsadministratörer

En annan viktig funktion är cron scheduler UI för administratörer. Detta gör det möjligt för administratörer att veta vilka uppgifter cron körs och att felsöka när varje del senast utfördes.

Webbplatsadministratörer kan ta kontroll över bakgrundsprocesserna som körs för deras Totara-webbplats. Denna funktion ger synlighet till Totara-kronan, vilket gör det lättare att se vad som händer, felsöka långsamma eller misslyckade processer och att ta kontroll över och optimera cron för en viss webbplats.

Använd schemaläggarfunktionen som finns under Snabbåtkomstmenyn > Server > Schemalagda uppgifter för att visa en lista över uppgifter som utförs av cron. Detta inkluderar att visa när uppgiften senast kördes och när den förväntas köras nästa gång.

Varje uppgift kan också konfigureras för att köras vid önskad tidpunkt på önskad dag.

Systemadministratörer med åtkomst till kommandorader kan också manuellt köra en enda uppgift om så krävs genom att köra admin/tool/task/cli/schedule_task.php med de argument som krävs.

De som kör sin webbplats i en värdmiljö där ändringar i systemkod inte kan göras eller måste genomgå en process för begäran och godkännande drar också nytta av konfiguration i produkten.

Hitta rätt plats för att lägga kommandot

Detta beror på vilket system du använder och du bör hitta och läsa dokumentationen för din plattform eller hosting. I de flesta fall får Totara cron att köra består av att upprätta rätt kommando (ovan) och sedan lägga till det, och tiden för att köra kommandot, till en fil. Detta kan antingen ske via ett specifikt användargränssnitt eller genom att redigera filen direkt.

Om du använder CLI-versionen måste du också se till att cron-processen körs som rätt användare. Detta är inte ett problem med webbversionen.

Exempel: Installera cron på Ubuntu/Debian Linux. Förutsatt inloggad som rot:

Använd crontab-kommandot för att öppna ett crontab-redigerarfönster för www-dataanvändaren. Detta är användaren som Apache (webbservern) körs som på Debian-baserade system.

$ crontab -u www-data -e

Detta öppnar ett redigeringsfönster. För att köra cli cron-skriptet varje minut, lägg till följande rad:

*/1 * * * * /usr/bin/php  /path/to/Totara/admin/cli/cron.php >/dev/null

Observera att den slutliga >/dev/nullen skickar alla utdata till 'bin' och förhindrar att du får ett e-postmeddelande varje minut.

Rekommenderade inställningar 

Generellt sett är de uppgifter som körs dagligen de som du är mer benägna att behöva ägna stor uppmärksamhet åt, särskilt på större webbplatser. Effekter på prestationer kommer att vara beroende av hur mycket information som behöver behandlas varje gång denna uppgift körs och vilken tidpunkt du ändrar uppgiften till. Att till exempel ändra en timuppgift till en som körs var 30:e minut kan vara bra, men att minska den till att köras varje minut kan påverka.

Det är tillrådligt att övervaka dessa tider för uppgifter för eventuella problem. Cron-loggarna kommer att ge en förståelse för den tid det tar att utföra en viss uppgift, och baserat på detta kan justeringar göras för att förbättra webbplatsens prestanda.

Eftersom alla webbplatser skiljer sig åt och cron-prestanda är beroende av användningen av olika funktioner, är det svårt att erbjuda en allmän eller "idealisk" konfiguration.

Logga cron

Utgången för cronscript kan loggas när den körs. Du måste ange sökvägen till PHP och sökvägen till var du vill att loggfilen ska skrivas. För Windows måste du ställa in en schemalagd uppgift och inkludera kommandot. Nedan följer exempel på kommandon som ska användas för varje operativsystem:

  • Unix/Linux-exempel: */1 * * * * /usr/bin/php /path/to/Totara/admin/cli/cron.php >> /var/log/cron.log 2>&1
  • Windows exempel: c:/php/php.exe -f c:/totara/admin/cli/cron.php > c:/totara/admin/cron.log

För Windows, om du har problem med att använda ovanstående kommandon i en textfil för att logga utdata från cron.php . Om så är fallet kan du alternativt försöka använda backslashes så här:

PHP
@echo off c:\php\php.exe -f c:\path\to\totara\admin\cli\cron.php >> c:\totara\admin\cron.log

Kör detta i en batchfil, till exempel c:\totara\cron.cmd , och ange sedan sökvägen till denna batchfil som den uppgift som ska köras.

Observera att vi i det senaste exemplet använde en dubbel större än/pilsymbol (>>) snarare än den enda i det första exemplet (>). Dubbelsymbolen betyder att alla cron-loggar kommer att behållas i filen, snarare än att skrivas över. Detta kan dock innebära att filen kan bli ganska stor, så det är viktigt att genomföra vårt regelbundna underhåll och rensa bort oönskade data.

Syftet med schemalagda uppgifter

Du kan hitta information om syftet med varje schemalagd uppgift på hjälpsidan för tillhörande komponenter (enligt listan nedan):

© Copyright 2024 Totara Learning Solutions. All rights reserved. Some content originally obtained via GPLv3 license and continues to be available under GPLv3. All other content is the sole copyright of Totara Learning Solutions. 


Var den här artikeln till hjälp?

Changing your password will log you out immediately. Use the new password to log back in.
First name must have atleast 2 characters. Numbers and special characters are not allowed.
Last name must have atleast 1 characters. Numbers and special characters are not allowed.
Enter a valid email
Enter a valid password
Your profile has been successfully updated.