Add cron job for generating/re-generating template thumbnail files
[MAILPOET-2686]
This commit is contained in:
committed by
Veljko V
parent
58bcca67ed
commit
b10bb31321
@@ -86,5 +86,6 @@ class Daemon {
|
||||
if ($this->featureSwitch->isSupported(FeaturesController::RE_ENGAGEMENT_EMAIL)) {
|
||||
yield $this->workersFactory->createReEngagementEmailsSchedulerWorker();
|
||||
}
|
||||
yield $this->workersFactory->createNewsletterTemplateThumbnailsWorker();
|
||||
}
|
||||
}
|
||||
|
@@ -9,6 +9,7 @@ use MailPoet\Cron\Workers\Bounce as BounceWorker;
|
||||
use MailPoet\Cron\Workers\InactiveSubscribers;
|
||||
use MailPoet\Cron\Workers\KeyCheck\PremiumKeyCheck as PremiumKeyCheckWorker;
|
||||
use MailPoet\Cron\Workers\KeyCheck\SendingServiceKeyCheck as SendingServiceKeyCheckWorker;
|
||||
use MailPoet\Cron\Workers\NewsletterTemplateThumbnails;
|
||||
use MailPoet\Cron\Workers\ReEngagementEmailsScheduler;
|
||||
use MailPoet\Cron\Workers\Scheduler as SchedulerWorker;
|
||||
use MailPoet\Cron\Workers\SendingQueue\Migration as MigrationWorker;
|
||||
@@ -250,6 +251,13 @@ class WordPress {
|
||||
'status' => ['null', ScheduledTask::STATUS_SCHEDULED],
|
||||
]);
|
||||
|
||||
// newsletter template thumbnails
|
||||
$newsletterTemplateThumbnailsTasks = $this->getTasksCount([
|
||||
'type' => NewsletterTemplateThumbnails::TASK_TYPE,
|
||||
'scheduled_in' => [self::SCHEDULED_IN_THE_PAST],
|
||||
'status' => ['null', ScheduledTask::STATUS_SCHEDULED],
|
||||
]);
|
||||
|
||||
// check requirements for each worker
|
||||
$sendingQueueActive = (($scheduledQueues || $runningQueues) && !$sendingLimitReached && !$sendingIsPaused);
|
||||
$bounceSyncActive = ($mpSendingEnabled && ($bounceDueTasks || !$bounceFutureTasks));
|
||||
@@ -279,6 +287,7 @@ class WordPress {
|
||||
|| $subscribersCountCacheRecalculationTasks
|
||||
|| $subscribersLastEngagementTasks
|
||||
|| $subscribersReEngagementSchedulingTasks
|
||||
|| $newsletterTemplateThumbnailsTasks
|
||||
);
|
||||
}
|
||||
|
||||
|
29
lib/Cron/Workers/NewsletterTemplateThumbnails.php
Normal file
29
lib/Cron/Workers/NewsletterTemplateThumbnails.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php declare(strict_types = 1);
|
||||
|
||||
namespace MailPoet\Cron\Workers;
|
||||
|
||||
use MailPoet\Entities\ScheduledTaskEntity;
|
||||
use MailPoet\NewsletterTemplates\ThumbnailSaver;
|
||||
use MailPoet\WP\Functions as WPFunctions;
|
||||
|
||||
class NewsletterTemplateThumbnails extends SimpleWorker {
|
||||
const TASK_TYPE = 'newsletter_templates_thumbnails';
|
||||
const AUTOMATIC_SCHEDULING = false;
|
||||
const SUPPORT_MULTIPLE_INSTANCES = false;
|
||||
|
||||
/** @var ThumbnailSaver */
|
||||
private $thumbnailSaver;
|
||||
|
||||
public function __construct(
|
||||
ThumbnailSaver $thumbnailSaver,
|
||||
WPFunctions $wp
|
||||
) {
|
||||
parent::__construct($wp);
|
||||
$this->thumbnailSaver = $thumbnailSaver;
|
||||
}
|
||||
|
||||
public function processTaskStrategy(ScheduledTaskEntity $task, $timer) {
|
||||
$this->thumbnailSaver->ensureTemplateThumbnailsForAll();
|
||||
return true;
|
||||
}
|
||||
}
|
@@ -127,4 +127,9 @@ class WorkersFactory {
|
||||
public function createSubscribersStatsReportWorker() {
|
||||
return $this->container->get(SubscribersStatsReport::class);
|
||||
}
|
||||
|
||||
/** @return NewsletterTemplateThumbnails */
|
||||
public function createNewsletterTemplateThumbnailsWorker() {
|
||||
return $this->container->get(NewsletterTemplateThumbnails::class);
|
||||
}
|
||||
}
|
||||
|
@@ -174,6 +174,7 @@ class ContainerConfigurator implements IContainerConfigurator {
|
||||
$container->autowire(\MailPoet\Cron\Workers\SubscribersLastEngagement::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Cron\Workers\SubscribersCountCacheRecalculation::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Cron\Workers\SubscribersStatsReport::class)->setPublic(true);
|
||||
$container->autowire(\MailPoet\Cron\Workers\NewsletterTemplateThumbnails::class)->setPublic(true);
|
||||
// Custom field
|
||||
$container->autowire(\MailPoet\CustomFields\ApiDataSanitizer::class);
|
||||
$container->autowire(\MailPoet\CustomFields\CustomFieldsRepository::class)->setPublic(true);
|
||||
|
@@ -32,6 +32,13 @@ class ThumbnailSaver {
|
||||
$this->baseUrl = Env::$tempUrl;
|
||||
}
|
||||
|
||||
public function ensureTemplateThumbnailsForAll() {
|
||||
$templates = $this->repository->findBy(['readonly' => false]);
|
||||
foreach ($templates as $template) {
|
||||
$this->ensureTemplateThumbnailFile($template);
|
||||
}
|
||||
}
|
||||
|
||||
public function ensureTemplateThumbnailFile(NewsletterTemplateEntity $template): NewsletterTemplateEntity {
|
||||
if ($template->getReadonly()) {
|
||||
return $template;
|
||||
|
@@ -306,6 +306,8 @@ class DaemonHttpRunnerTest extends \MailPoetTest {
|
||||
'createSubscribersEngagementScoreWorker' => $worker,
|
||||
'createSubscribersLastEngagementWorker' => $worker,
|
||||
'createSubscribersCountCacheRecalculationWorker' => $worker,
|
||||
'createReEngagementEmailsSchedulerWorker' => $worker,
|
||||
'createNewsletterTemplateThumbnailsWorker' => $worker,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
@@ -62,6 +62,8 @@ class DaemonTest extends \MailPoetTest {
|
||||
'createSubscribersEngagementScoreWorker' => $this->createSimpleWorkerMock(),
|
||||
'createSubscribersLastEngagementWorker' => $this->createSimpleWorkerMock(),
|
||||
'createSubscribersCountCacheRecalculationWorker' => $this->createSimpleWorkerMock(),
|
||||
'createReEngagementEmailsSchedulerWorker' => $this->createSimpleWorkerMock(),
|
||||
'createNewsletterTemplateThumbnailsWorker' => $this->createSimpleWorkerMock(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user