{"id":1189,"date":"2024-02-26T18:54:06","date_gmt":"2024-02-26T13:24:06","guid":{"rendered":"https:\/\/magecurious.com\/blog\/?p=1189"},"modified":"2024-11-18T13:03:03","modified_gmt":"2024-11-18T07:33:03","slug":"how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2","status":"publish","type":"post","link":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/","title":{"rendered":"How To Dynamically Schedule Cron Job By Configuration In Magento 2"},"content":{"rendered":"\n<p>Hello Everyone,<\/p>\n\n\n\n<p>In this blog, we will learn about how to Dynamically Schedule Cron Job By System Configuration in Magento 2.<\/p>\n\n\n\n<p>Magento 2 store owners can set specific time for some tasks to run automatically.<\/p>\n\n\n\n<p>Tasks include newsletter send, backup etc.<\/p>\n\n\n\n<p>Without wasting your time, let us guide you straight away. Follow the easy step given below to Dynamically Schedule Cron Job By Configuration in Magento 2.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>STEPS FOR DYNAMICALLY SCHEDULE CRON JOB BY SYSTEM CONFIGURATION IN MAGENTO 2<\/strong><\/h2>\n\n\n\n<p><strong>Step 1: Create file crontab.xml<\/strong><\/p>\n\n\n\n<p><strong>app\/code\/Vendor\/Extension\/etc\/crontab.xml<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?xml version=&quot;1.0&quot;?&gt;\n\n&lt;config xmlns:xsi=&quot;http:\/\/www.w3.org\/2001\/XMLSchema-instance&quot; xsi:noNamespaceSchemaLocation=&quot;urn:magento:module:Magento_Cron:etc\/crontab.xsd&quot;&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;group id=&quot;default&quot;&gt;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;job instance=&quot;Vendor\\Extension\\Cron\\CustomCron&quot; method=&quot;execute&quot; name=&quot;my_cron_job&quot;&gt;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;config_path&gt;crontab\/default\/jobs\/my_cron_job\/schedule\/cron_expr&lt;\/config_path&gt;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/job&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;\/group&gt;\n\n&lt;\/config&gt;\n<\/pre><\/div>\n\n\n<p><strong>Step 2: Add\/Update system.xml file<\/strong><\/p>\n\n\n\n<p><strong>app\/code\/Vendor\/Extension\/etc\/adminhtml\/system.xml<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;field id=&quot;frequency&quot; translate=&quot;label&quot; type=&quot;select&quot; sortOrder=&quot;1&quot; showInDefault=&quot;1&quot; showInWebsite=&quot;1&quot; showInStore=&quot;1&quot;&gt;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label&gt;Frequency&lt;\/label&gt;\n\n\u00a0\u00a0&lt;source_model&gt;Magento\\Cron\\Model\\Config\\Source\\Frequency&lt;\/source_model&gt;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;backend_model&gt;Vendor\\Extension\\Model\\Config\\Cronconfig&lt;\/backend_model&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;\/field&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;field id=&quot;time&quot; translate=&quot;label comment&quot; sortOrder=&quot;2&quot; type=&quot;time&quot; showInDefault=&quot;1&quot; showInWebsite=&quot;1&quot; showInStore=&quot;1&quot;&gt;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;label&gt;Start Time&lt;\/label&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;\/field&gt;\n<\/pre><\/div>\n\n\n<p><strong>Step 3: Create file Cronconfig.php<\/strong><\/p>\n\n\n\n<p><strong>app\/code\/Vendor\/Extension\/Model\/Config\/Cronconfig.php<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\n\nnamespace Vendor\\Extension\\Model\\Config;\n\nclass Cronconfig extends \\Magento\\Framework\\App\\Config\\Value\n\n{\n\n\u00a0\u00a0\u00a0\u00a0const CRON_STRING_PATH = &#039;crontab\/default\/jobs\/my_cron_job\/schedule\/cron_expr&#039;;\n\n\u00a0\u00a0\u00a0\u00a0const CRON_MODEL_PATH = &#039;crontab\/default\/jobs\/my_cron_job\/run\/model&#039;;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\/**\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @var \\Magento\\Framework\\App\\Config\\ValueFactory\n\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\n\u00a0\u00a0\u00a0\u00a0protected $_configValueFactory;\n\n\u00a0\u00a0\u00a0\u00a0\/**\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @var mixed|string\n\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\n\u00a0\u00a0\u00a0\u00a0protected $_runModelPath = &#039;&#039;;\n\n\u00a0\u00a0\u00a0\u00a0\/**\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* CronConfig1 constructor.\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param \\Magento\\Framework\\Model\\Context $context\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param \\Magento\\Framework\\Registry $registry\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param \\Magento\\Framework\\App\\Config\\ScopeConfigInterface $config\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param \\Magento\\Framework\\App\\Cache\\TypeListInterface $cacheTypeList\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param \\Magento\\Framework\\App\\Config\\ValueFactory $configValueFactory\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param \\Magento\\Framework\\Model\\ResourceModel\\AbstractResource|null $resource\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param \\Magento\\Framework\\Data\\Collection\\AbstractDb|null $resourceCollection\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param string $runModelPath\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @param array $data\n\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\n\u00a0\u00a0\u00a0\u00a0public function __construct(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\\Magento\\Framework\\Model\\Context $context,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\\Magento\\Framework\\Registry $registry,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\\Magento\\Framework\\App\\Config\\ScopeConfigInterface $config,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\\Magento\\Framework\\App\\Cache\\TypeListInterface $cacheTypeList,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\\Magento\\Framework\\App\\Config\\ValueFactory $configValueFactory,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\\Magento\\Framework\\Model\\ResourceModel\\AbstractResource $resource = null,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\\Magento\\Framework\\Data\\Collection\\AbstractDb $resourceCollection = null,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$runModelPath = &#039;&#039;,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0array $data = &#x5B;])\n\n\u00a0\u00a0\u00a0\u00a0{\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;_runModelPath = $runModelPath;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;_configValueFactory = $configValueFactory;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0parent::__construct($context, $registry, $config, $cacheTypeList, $resource, $resourceCollection, $data);\n\n\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0\/**\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @return CronConfig1\n\n\u00a0\u00a0\u00a0\u00a0\u00a0* @throws \\Exception\n\n\u00a0\u00a0\u00a0\u00a0\u00a0*\/\n\n\u00a0\u00a0\u00a0\u00a0public function afterSave()\n\n\u00a0\u00a0\u00a0\u00a0{\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$time = $this-&gt;getData(&#039;groups\/configurable_cron\/fields\/time\/value&#039;);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$frequency = $this-&gt;getData(&#039;groups\/configurable_cron\/fields\/frequency\/value&#039;);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$cronExprArray = &#x5B;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0intval($time&#x5B;1]),\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0intval($time&#x5B;0]),\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$frequency == \\Magento\\Cron\\Model\\Config\\Source\\Frequency::CRON_MONTHLY ? &#039;1&#039; : &#039;*&#039;,\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#039;*&#039;,\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$frequency == \\Magento\\Cron\\Model\\Config\\Source\\Frequency::CRON_WEEKLY ? &#039;1&#039; : &#039;*&#039;,\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0];\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$cronExprString = join(&#039; &#039;, $cronExprArray);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;_configValueFactory-&gt;create()-&gt;load(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self::CRON_STRING_PATH,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#039;path&#039;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)-&gt;setValue(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$cronExprString\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)-&gt;setPath(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self::CRON_STRING_PATH\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)-&gt;save();\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;_configValueFactory-&gt;create()-&gt;load(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self::CRON_MODEL_PATH,\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#039;path&#039;\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)-&gt;setValue(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;_runModelPath\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)-&gt;setPath(\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0self::CRON_MODEL_PATH\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)-&gt;save();\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0catch (\\Exception $e)\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw new \\Exception(__(&#039;Some Thing Want Wrong , We can\\&#039;t save the cron expression.&#039;));\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return parent::afterSave();\n\n\u00a0\u00a0\u00a0\u00a0}\n\n}\n<\/pre><\/div>\n\n\n<p><strong>Step 4: Create file CustomCron.php<\/strong><\/p>\n\n\n\n<p><strong>app\/code\/Vendor\/Extension\/Cron\/CustomCron.php<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php\n\nnamespace Vendor\\Extension\\Cron;\n\nclass CustomCron\n\n{\n\n\u00a0\u00a0\u00a0\u00a0protected $logger;\n\n\u00a0\u00a0\u00a0\u00a0\/**\n\n\u00a0\u00a0\u00a0\u00a0* Constructor\n\n\u00a0\u00a0\u00a0\u00a0*\n\n\u00a0\u00a0\u00a0\u00a0* @param \\Psr\\Log\\LoggerInterface $logger\n\n\u00a0\u00a0\u00a0\u00a0*\/\n\n\u00a0\u00a0\u00a0\u00a0public function __construct(\\Psr\\Log\\LoggerInterface $logger)\n\n\u00a0\u00a0\u00a0\u00a0{\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;logger = $logger;\n\n\u00a0\u00a0\u00a0\u00a0}\n\n\u00a0\u00a0\u00a0\u00a0public function execute()\n\n\u00a0\u00a0\u00a0\u00a0{\u00a0\u00a0\u00a0\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$this-&gt;logger-&gt;info(&quot;Magecurious custom cron is executed.&quot;);\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/add your custom cron job logic here.\n\n\u00a0\u00a0\u00a0\u00a0}\n\n}\n<\/pre><\/div>\n\n\n<p><strong>Step 5: Finally run the below commands<\/strong><\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n$ php bin\/magento cache:clean\n\n$ php bin\/magento cache:flush\n<\/pre><\/div>\n\n\n<p><strong><br><\/strong><strong>Step 6: Output:<\/strong><\/p>\n\n\n\n<p>You can see below system configuration output, change the value as per your requirements. Cron will be run at selected Frequency and Set Time.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-us.googleusercontent.com\/AQgJTxnKsjeuUoZh0zqEcemRAo8sxhiJFLz0Fs1vRqzTtt8kq3wY7jpbWZ92KlnKBwcX141OzMdS8hIMIlZMXigiEv80Z0QHhNhQPFDsYBSjmeWZ51BSGPKQ1rpxs1Wfegq-JBDqebbHy6NBGdfE32I\" alt=\"\"\/><\/figure>\n\n\n\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final Thoughts:<\/strong><\/h2>\n\n\n\n<p>So this was the easiest way which we have told you in this blog. This is how you can Add Inline Edit Functionality in UI Grid Backend in Magento 2. Hope you liked the blog.<\/p>\n\n\n\n<p>So quickly go to the comment box and tell me how you like this blog?<\/p>\n\n\n\n<p><strong>Stay tuned with us on our site to get new updates of Magento.<\/strong><\/p>\n\n\n\n<p>Thanks for reading and visiting our site.<\/p>\n\n\n<!-- FeedbackWP Plugin --><div  class=\"rmp-widgets-container rmp-wp-plugin rmp-main-container js-rmp-widgets-container js-rmp-widgets-container--1189 \"  data-post-id=\"1189\">    <!-- Rating widget -->  <div class=\"rmp-rating-widget js-rmp-rating-widget\">          <p class=\"rmp-heading rmp-heading--title\">        How useful was this post?      <\/p>              <p class=\"rmp-heading rmp-heading--subtitle\">        Click on a star to rate it!      <\/p>        <div class=\"rmp-rating-widget__icons\">      <ul class=\"rmp-rating-widget__icons-list js-rmp-rating-icons-list\">                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Not at all useful\" data-value=\"1\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star rmp-icon--full-highlight\"><\/i>          <\/li>                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Somewhat useful\" data-value=\"2\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star rmp-icon--full-highlight\"><\/i>          <\/li>                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Useful\" data-value=\"3\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star rmp-icon--full-highlight\"><\/i>          <\/li>                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Fairly useful\" data-value=\"4\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star rmp-icon--full-highlight\"><\/i>          <\/li>                  <li class=\"rmp-rating-widget__icons-list__icon js-rmp-rating-item\" data-descriptive-rating=\"Very useful\" data-value=\"5\">              <i class=\"js-rmp-rating-icon rmp-icon rmp-icon--ratings rmp-icon--star rmp-icon--full-highlight\"><\/i>          <\/li>              <\/ul>    <\/div>    <p class=\"rmp-rating-widget__hover-text js-rmp-hover-text\"><\/p>        <button class=\"rmp-rating-widget__submit-btn rmp-btn js-submit-rating-btn\">      Submit Rating    <\/button>    <p class=\"rmp-rating-widget__results js-rmp-results \">      Average rating <span class=\"rmp-rating-widget__results__rating js-rmp-avg-rating\">5<\/span> \/ 5. Vote count: <span class=\"rmp-rating-widget__results__votes js-rmp-vote-count\">1<\/span>    <\/p>    <p class=\"rmp-rating-widget__not-rated js-rmp-not-rated rmp-rating-widget__not-rated--hidden\">      No votes so far! Be the first to rate this post.    <\/p>    <p class=\"rmp-rating-widget__msg js-rmp-msg\"><\/p>  <\/div>  <!--Structured data -->        <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Hello Everyone, In this blog, we will learn about how to Dynamically Schedule Cron Job By System Configuration in Magento 2. Magento 2 store owners can set specific time for some tasks to run automatically. Tasks include newsletter send, backup etc. Without wasting your time, let us guide you straight away. Follow the easy step [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1190,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1189","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-magento-2"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Dynamically Schedule Cron Job by Configuration- Magento 2<\/title>\n<meta name=\"description\" content=\"Discover how to dynamically schedule cron jobs in Magento 2 for efficient store management with this concise guide.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Dynamically Schedule Cron Job by Configuration- Magento 2\" \/>\n<meta property=\"og:description\" content=\"Discover how to dynamically schedule cron jobs in Magento 2 for efficient store management with this concise guide.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Magecurious\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-26T13:24:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-18T07:33:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2024\/02\/CRON-JOB-BY-CONFIGURE.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"496\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Magecurious\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Magecurious\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Dynamically Schedule Cron Job by Configuration- Magento 2","description":"Discover how to dynamically schedule cron jobs in Magento 2 for efficient store management with this concise guide.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/","og_locale":"en_US","og_type":"article","og_title":"Dynamically Schedule Cron Job by Configuration- Magento 2","og_description":"Discover how to dynamically schedule cron jobs in Magento 2 for efficient store management with this concise guide.","og_url":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/","og_site_name":"Magecurious","article_published_time":"2024-02-26T13:24:06+00:00","article_modified_time":"2024-11-18T07:33:03+00:00","og_image":[{"width":1200,"height":496,"url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2024\/02\/CRON-JOB-BY-CONFIGURE.png","type":"image\/png"}],"author":"Magecurious","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Magecurious","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/#article","isPartOf":{"@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/"},"author":{"name":"Magecurious","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/person\/6bced7da0991e7fbbd4550006a6494e2"},"headline":"How To Dynamically Schedule Cron Job By Configuration In Magento 2","datePublished":"2024-02-26T13:24:06+00:00","dateModified":"2024-11-18T07:33:03+00:00","mainEntityOfPage":{"@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/"},"wordCount":240,"commentCount":0,"publisher":{"@id":"https:\/\/magecurious.com\/blog\/#organization"},"image":{"@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/#primaryimage"},"thumbnailUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2024\/02\/CRON-JOB-BY-CONFIGURE.png","articleSection":["Magento 2 Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/","url":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/","name":"Dynamically Schedule Cron Job by Configuration- Magento 2","isPartOf":{"@id":"https:\/\/magecurious.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/#primaryimage"},"image":{"@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/#primaryimage"},"thumbnailUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2024\/02\/CRON-JOB-BY-CONFIGURE.png","datePublished":"2024-02-26T13:24:06+00:00","dateModified":"2024-11-18T07:33:03+00:00","description":"Discover how to dynamically schedule cron jobs in Magento 2 for efficient store management with this concise guide.","breadcrumb":{"@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/#primaryimage","url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2024\/02\/CRON-JOB-BY-CONFIGURE.png","contentUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2024\/02\/CRON-JOB-BY-CONFIGURE.png","width":1200,"height":496},{"@type":"BreadcrumbList","@id":"https:\/\/magecurious.com\/blog\/how-to-dynamically-schedule-cron-job-by-configuration-in-magento-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/magecurious.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How To Dynamically Schedule Cron Job By Configuration In Magento 2"}]},{"@type":"WebSite","@id":"https:\/\/magecurious.com\/blog\/#website","url":"https:\/\/magecurious.com\/blog\/","name":"Magecurious","description":"Blog","publisher":{"@id":"https:\/\/magecurious.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/magecurious.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/magecurious.com\/blog\/#organization","name":"Magecurious","url":"https:\/\/magecurious.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2026\/03\/cropped-New_Project.png","contentUrl":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2026\/03\/cropped-New_Project.png","width":596,"height":113,"caption":"Magecurious"},"image":{"@id":"https:\/\/magecurious.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/person\/6bced7da0991e7fbbd4550006a6494e2","name":"Magecurious","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/magecurious.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c9178df2190b2309da97c9f28dd475bc338275cf664d12678d7e5da51c761271?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c9178df2190b2309da97c9f28dd475bc338275cf664d12678d7e5da51c761271?s=96&d=mm&r=g","caption":"Magecurious"},"sameAs":["https:\/\/magecurious.com"],"url":"https:\/\/magecurious.com\/blog\/author\/magecurious-wp\/"}]}},"jetpack_featured_media_url":"https:\/\/magecurious.com\/blog\/wp-content\/uploads\/2024\/02\/CRON-JOB-BY-CONFIGURE.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/posts\/1189","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/comments?post=1189"}],"version-history":[{"count":0,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/posts\/1189\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/media\/1190"}],"wp:attachment":[{"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/media?parent=1189"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/categories?post=1189"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/magecurious.com\/blog\/wp-json\/wp\/v2\/tags?post=1189"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}