Unify ProcessedAt timezone
Fix a problem in the codebase where we create, schedule and update newsletters in the user time zone, but we set the ProcessedAt with another timezone Also, `Carbon::createFromTimestamp($this->wp->currentTime('mysql'))` is not a valid date. It would return date: '1970-01-01 00:35:29.000000' MAILPOET-5795
This commit is contained in:
committed by
Aschepikov
parent
832ffc1568
commit
639d779088
@@ -182,7 +182,7 @@ class Worker {
|
|||||||
|
|
||||||
private function markTaskAsFinished(ScheduledTaskEntity $task) {
|
private function markTaskAsFinished(ScheduledTaskEntity $task) {
|
||||||
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
|
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
|
||||||
$task->setProcessedAt(new Carbon);
|
$task->setProcessedAt(Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp')));
|
||||||
$task->setScheduledAt(null);
|
$task->setScheduledAt(null);
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
}
|
}
|
||||||
|
@@ -7,6 +7,7 @@ use MailPoet\Entities\ScheduledTaskEntity;
|
|||||||
use MailPoet\Entities\ScheduledTaskSubscriberEntity;
|
use MailPoet\Entities\ScheduledTaskSubscriberEntity;
|
||||||
use MailPoet\Entities\SubscriberEntity;
|
use MailPoet\Entities\SubscriberEntity;
|
||||||
use MailPoet\InvalidStateException;
|
use MailPoet\InvalidStateException;
|
||||||
|
use MailPoet\WP\Functions as WPFunctions;
|
||||||
use MailPoetVendor\Carbon\Carbon;
|
use MailPoetVendor\Carbon\Carbon;
|
||||||
use MailPoetVendor\Doctrine\DBAL\Connection;
|
use MailPoetVendor\Doctrine\DBAL\Connection;
|
||||||
use MailPoetVendor\Doctrine\ORM\QueryBuilder;
|
use MailPoetVendor\Doctrine\ORM\QueryBuilder;
|
||||||
@@ -186,7 +187,7 @@ class ScheduledTaskSubscribersRepository extends Repository {
|
|||||||
$count = $this->countUnprocessed($task);
|
$count = $this->countUnprocessed($task);
|
||||||
if ($count === 0) {
|
if ($count === 0) {
|
||||||
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
|
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
|
||||||
$task->setProcessedAt(new Carbon());
|
$task->setProcessedAt(Carbon::createFromTimestamp(WPFunctions::get()->currentTime('timestamp')));
|
||||||
$this->entityManager->flush();
|
$this->entityManager->flush();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -138,7 +138,7 @@ class SendingQueuesRepository extends Repository {
|
|||||||
if (!$task instanceof ScheduledTaskEntity) return;
|
if (!$task instanceof ScheduledTaskEntity) return;
|
||||||
|
|
||||||
if ($queue->getCountProcessed() === $queue->getCountTotal()) {
|
if ($queue->getCountProcessed() === $queue->getCountTotal()) {
|
||||||
$processedAt = Carbon::createFromTimestamp($this->wp->currentTime('mysql'));
|
$processedAt = Carbon::createFromTimestamp($this->wp->currentTime('timestamp'));
|
||||||
$task->setProcessedAt($processedAt);
|
$task->setProcessedAt($processedAt);
|
||||||
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
|
$task->setStatus(ScheduledTaskEntity::STATUS_COMPLETED);
|
||||||
// Update also status of newsletter if necessary
|
// Update also status of newsletter if necessary
|
||||||
|
Reference in New Issue
Block a user