Schedule immediate cron task for Woo sync on force sync

[MAILPOET-3726]
This commit is contained in:
Rostislav Wolny
2021-09-06 13:20:02 +02:00
committed by Veljko V
parent c2c383e0b5
commit 8eaf9471f5

View File

@ -9,6 +9,8 @@ use MailPoet\API\JSON\Error as APIError;
use MailPoet\API\JSON\Response; use MailPoet\API\JSON\Response;
use MailPoet\API\JSON\ResponseBuilders\SegmentsResponseBuilder; use MailPoet\API\JSON\ResponseBuilders\SegmentsResponseBuilder;
use MailPoet\Config\AccessControl; use MailPoet\Config\AccessControl;
use MailPoet\Cron\CronWorkerScheduler;
use MailPoet\Cron\Workers\WooCommerceSync;
use MailPoet\Doctrine\Validator\ValidationException; use MailPoet\Doctrine\Validator\ValidationException;
use MailPoet\Entities\SegmentEntity; use MailPoet\Entities\SegmentEntity;
use MailPoet\Entities\SubscriberEntity; use MailPoet\Entities\SubscriberEntity;
@ -56,6 +58,9 @@ class Segments extends APIEndpoint {
/** @var NewsletterSegmentRepository */ /** @var NewsletterSegmentRepository */
private $newsletterSegmentRepository; private $newsletterSegmentRepository;
/** @var CronWorkerScheduler */
private $cronWorkerScheduler;
/** @var FormsRepository */ /** @var FormsRepository */
private $formsRepository; private $formsRepository;
@ -69,6 +74,7 @@ class Segments extends APIEndpoint {
WooCommerce $wooCommerce, WooCommerce $wooCommerce,
WP $wpSegment, WP $wpSegment,
NewsletterSegmentRepository $newsletterSegmentRepository, NewsletterSegmentRepository $newsletterSegmentRepository,
CronWorkerScheduler $cronWorkerScheduler,
FormsRepository $formsRepository FormsRepository $formsRepository
) { ) {
$this->listingHandler = $listingHandler; $this->listingHandler = $listingHandler;
@ -80,6 +86,7 @@ class Segments extends APIEndpoint {
$this->wpSegment = $wpSegment; $this->wpSegment = $wpSegment;
$this->segmentListingRepository = $segmentListingRepository; $this->segmentListingRepository = $segmentListingRepository;
$this->newsletterSegmentRepository = $newsletterSegmentRepository; $this->newsletterSegmentRepository = $newsletterSegmentRepository;
$this->cronWorkerScheduler = $cronWorkerScheduler;
$this->formsRepository = $formsRepository; $this->formsRepository = $formsRepository;
} }
@ -254,7 +261,7 @@ class Segments extends APIEndpoint {
public function synchronize($data) { public function synchronize($data) {
try { try {
if ($data['type'] === SegmentEntity::TYPE_WC_USERS) { if ($data['type'] === SegmentEntity::TYPE_WC_USERS) {
$this->wooCommerceSync->synchronizeCustomers(); $this->cronWorkerScheduler->scheduleImmediatelyIfNotRunning(WooCommerceSync::TASK_TYPE);
} else { } else {
$this->wpSegment->synchronizeUsers(); $this->wpSegment->synchronizeUsers();
} }