Skip to content

Commit 37ae12a

Browse files
author
James Halsall
committed
Run the sitemap_generate cron job correctly
1 parent 199272b commit 37ae12a

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

app/code/Magento/Sitemap/Model/Observer.php

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class Observer
2020
/**
2121
* Cronjob expression configuration
2222
*/
23-
const XML_PATH_CRON_EXPR = 'crontab/default/jobs/generate_sitemaps/schedule/cron_expr';
23+
const XML_PATH_CRON_EXPR = 'crontab/default/jobs/sitemap_generate/schedule/cron_expr';
2424

2525
/**
2626
* Error email template configuration
@@ -64,25 +64,33 @@ class Observer
6464
*/
6565
protected $inlineTranslation;
6666

67+
/**
68+
* @var \Magento\Cron\Model\ScheduleFactory
69+
*/
70+
private $scheduleFactory;
71+
6772
/**
6873
* @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
6974
* @param \Magento\Sitemap\Model\ResourceModel\Sitemap\CollectionFactory $collectionFactory
7075
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
7176
* @param \Magento\Framework\Mail\Template\TransportBuilder $transportBuilder
7277
* @param \Magento\Framework\Translate\Inline\StateInterface $inlineTranslation
78+
* @param \Magento\Cron\Model\ScheduleFactory $scheduleFactory
7379
*/
7480
public function __construct(
7581
\Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig,
7682
\Magento\Sitemap\Model\ResourceModel\Sitemap\CollectionFactory $collectionFactory,
7783
\Magento\Store\Model\StoreManagerInterface $storeManager,
7884
\Magento\Framework\Mail\Template\TransportBuilder $transportBuilder,
79-
\Magento\Framework\Translate\Inline\StateInterface $inlineTranslation
85+
\Magento\Framework\Translate\Inline\StateInterface $inlineTranslation,
86+
\Magento\Cron\Model\ScheduleFactory $scheduleFactory
8087
) {
8188
$this->_scopeConfig = $scopeConfig;
8289
$this->_collectionFactory = $collectionFactory;
8390
$this->_storeManager = $storeManager;
8491
$this->_transportBuilder = $transportBuilder;
8592
$this->inlineTranslation = $inlineTranslation;
93+
$this->scheduleFactory = $scheduleFactory;
8694
}
8795

8896
/**
@@ -105,6 +113,14 @@ public function scheduledGenerateSitemaps()
105113
return;
106114
}
107115

116+
$schedule = $this->scheduleFactory->create();
117+
$schedule->setScheduledAt(date('Y-m-d H:i:s'));
118+
$schedule->setCronExpr($this->_scopeConfig->getValue(self::XML_PATH_CRON_EXPR));
119+
120+
if (!$schedule->trySchedule()) {
121+
return;
122+
}
123+
108124
$collection = $this->_collectionFactory->create();
109125
/* @var $collection \Magento\Sitemap\Model\ResourceModel\Sitemap\Collection */
110126
foreach ($collection as $sitemap) {

app/code/Magento/Sitemap/etc/crontab.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
-->
88
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Cron:etc/crontab.xsd">
99
<group id="default">
10-
<job name="sitemap_generate" instance="Magento\Sitemap\Model\Observer" method="scheduledGenerateSitemaps" />
10+
<job name="sitemap_generate" instance="Magento\Sitemap\Model\Observer" method="scheduledGenerateSitemaps">
11+
<schedule>* * * * *</schedule>
12+
</job>
1113
</group>
1214
</config>

0 commit comments

Comments
 (0)