Как настроить cron динамически через admin в magento 2 (пользовательский модуль) - PullRequest
0 голосов
/ 04 декабря 2018

Как динамически настроить cron в config.xml (пользовательский модуль) в magento 2

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Я постараюсь сделать предложение, но не уверен, что оно полностью ответит на ваш вопрос.

Так что config.xml устанавливает значение по умолчанию для вашего поля конфигурации, установленного в system.xml

Таким образом, у вас может быть другое задание cron, которое запускается каждую минуту (* * * * *) и динамически изменять этот набор значений в system.xml.Примерно так:

public function __construct(
    \Magento\Framework\App\Config\ConfigResource\ConfigInterface  $resourceConfig)
{
    $this->resourceConfig = $resourceConfig;
}        

public function execute()
{
    $newvalue = $dynamicvalue;

    $this->resourceConfig->saveConfig(
        'section/group/field', 
        $newvalue, 
        \Magento\Framework\App\Config\ScopeConfigInterface::SCOPE_TYPE_DEFAULT, 
        \Magento\Store\Model\Store::DEFAULT_STORE_ID
    );

}   

Так что в основном два задания cron.Тот, который на самом деле делает работу, которую вы хотите, и тот, который настраивает его график.Также вы можете динамически изменять расписание в обозревателе, плагине или другом классе, в зависимости от ваших потребностей, используя приведенный выше код.

0 голосов
/ 06 декабря 2018

Magento2 имеет другую схему объединения настроек макета, поэтому вам нужно создать новый файл с именем crontab.xml в папке your_custom_module / etc.И тогда вы можете добавить свою конфигурацию cron следующим образом:

<?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="custom_cronjob" instance="YourVenDoerName\CustomModule\Cron\Test" method="execute">
            <schedule>* * * * *</schedule>
        </job>
    </group>
</config>

Cheers

...