Anpassa crons-referens
I det här avsnittet får du hjälp med att konfigurera konstanter och (valfritt) kundgrupper för anpassade moduler. Om din anpassade modul behöver schemalägga aktiviteter regelbundet måste du skapa en crontab för den modulen. En crontab är en cron-jobbkonfiguration.
Du kan också konfigurera en anpassad grupp, vilket bland annat gör att du kan köra cron-jobb som definierats i den gruppen oberoende av andra cron-jobb.
En stegvis självstudiekurs finns i Konfigurera anpassade cron-jobb och cron-grupper (självstudiekurs).
En översikt över cron-jobb finns i Konfigurera cron-jobb.
Konfigurera kundgrupper
I det här avsnittet beskrivs hur du kan skapa en cron-grupp för en anpassad modul. Om du inte behöver göra det fortsätter du med nästa avsnitt.
En cron-grupp är en logisk grupp som gör att du enkelt kan köra kron för mer än en process i taget. I de flesta Commerce-moduler används kronigruppen default. I vissa moduler används gruppen index.
Om du implementerar cron för en anpassad modul kan du välja att använda gruppen default eller en annan grupp.
Så här konfigurerar du en cron-grupp för modulen:
Skapa en crontab.xml-fil i modulkatalogen:
<your component base dir>/<vendorname>/module-<name>/etc/crontab.xml
För en grupp bör filen ha följande innehåll:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="<group_name>">
<job name="<job_name>" instance="<classpath>" method="<method>">
<schedule><time></schedule>
</job>
</group>
</config>
Var:
group_namejob_nameclasspathmethodclasspath att anropa.timeResultatet crontab.xml med två grupper kan se ut så här:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
<group id="default">
<job name="<job_1_name>" instance="<classpath>" method="<method_name>">
<schedule>* * * * *</schedule>
</job>
<job name="<job_2_name>" instance="<classpath>" method="<method_name>">
<schedule>* * * * *</schedule>
</job>
</group>
<group id="index">
<job name="<job_3_name>" instance="<classpath>" method="<method_name>">
<schedule>* * * * *</schedule>
</job>
<job name="<job_4_name>" instance="<classpath>" method="<method_name>">
<schedule>* * * * *</schedule>
</job>
</group>
</config>
Se till exempel Magento_Customer crontab.xml.
Ange alternativ för Cron-grupp
Du kan deklarera en ny grupp och ange dess konfigurationsalternativ (som alla körs i butiksvyn) via filen cron_groups.xml som finns i:
<your component base dir>/<vendorname>/module-<name>/etc/cron_groups.xml
Nedan visas ett exempel på filen cron_groups.xml:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/cron_groups.xsd">
<group id="<group_name>">
<schedule_generate_every>1</schedule_generate_every>
<schedule_ahead_for>4</schedule_ahead_for>
<schedule_lifetime>2</schedule_lifetime>
<history_cleanup_every>10</history_cleanup_every>
<history_success_lifetime>60</history_success_lifetime>
<history_failure_lifetime>600</history_failure_lifetime>
<use_separate_process>1</use_separate_process>
</group>
</config>
Var:
schedule_generate_everycron_schedule.schedule_ahead_forcron_schedule.schedule_lifetimehistory_cleanup_everyhistory_success_lifetimehistory_failure_lifetimeuse_separate_processInaktivera ett cron-jobb
Kronijobb har inte en disable-funktion som vi har för observatörer. Ett cron-jobb kan dock inaktiveras med följande teknik: schedule en tid som innehåller ett datum som aldrig kommer att inträffa.
Inaktivera t.ex. cron-jobbet visitor_clean som definierats i modulen Magento_Customer:
...
<group id="default">
<job name="visitor_clean" instance="Magento\Customer\Model\Visitor" method="clean">
<schedule>0 0 * * *</schedule>
</job>
</group>
...
Om du vill inaktivera cron-jobbet visitor_clean skapar du en anpassad modul och skriver om visitor_clean cron-jobbet schedule:
...
<group id="default">
<job name="visitor_clean" instance="Magento\Customer\Model\Visitor" method="clean">
<schedule>0 0 30 2 *</schedule>
</job>
</group>
...
Nu har kron-jobbet visitor_clean ställts in att köras kl. 00:00 den 30 februari - vid ett datum som aldrig inträffar.