diff --git a/lib/Cron/Workers/Scheduler.php b/lib/Cron/Workers/Scheduler.php index e33908fc4c..98933fc9c7 100644 --- a/lib/Cron/Workers/Scheduler.php +++ b/lib/Cron/Workers/Scheduler.php @@ -22,7 +22,7 @@ class Scheduler { function process() { $scheduled_queues = SendingQueue::where('status', 'scheduled') - ->whereLte('scheduled_at', Carbon::now()->format('Y-m-d H:i:s')) + ->whereLte('scheduled_at', Carbon::createFromTimestamp(current_time('timestamp'))) ->findMany(); if(!count($scheduled_queues)) return; foreach($scheduled_queues as $queue) { @@ -80,7 +80,8 @@ class Scheduler { $new_queue = SendingQueue::create(); $new_queue->newsletter_id = $newsletter->id; $schedule = Cron::factory($newsletter->schedule); - $new_queue->scheduled_at = $schedule->getNextRunDate()->format('Y-m-d H:i:s'); + $new_queue->scheduled_at = + $schedule->getNextRunDate(current_time('mysql'))->format('Y-m-d H:i:s'); $new_queue->status = 'scheduled'; $new_queue->save(); } diff --git a/lib/Cron/Workers/SendingQueue.php b/lib/Cron/Workers/SendingQueue.php index 63e4cdb116..245bc53f40 100644 --- a/lib/Cron/Workers/SendingQueue.php +++ b/lib/Cron/Workers/SendingQueue.php @@ -34,6 +34,7 @@ class SendingQueue { foreach($this->getQueues() as $queue) { $newsletter = Newsletter::findOne($queue->newsletter_id); if(!$newsletter) { + $queue->delete(); continue; } $newsletter = $newsletter->asArray(); diff --git a/lib/Router/SendingQueue.php b/lib/Router/SendingQueue.php index 129488fbe0..a5d68ac0b4 100644 --- a/lib/Router/SendingQueue.php +++ b/lib/Router/SendingQueue.php @@ -62,7 +62,8 @@ class SendingQueue { $queue->newsletter_id = $newsletter->id; } $schedule = Cron::factory($newsletter->schedule); - $queue->scheduled_at = $schedule->getNextRunDate()->format('Y-m-d H:i:s'); + $queue->scheduled_at = + $schedule->getNextRunDate(current_time('mysql'))->format('Y-m-d H:i:s'); $queue->status = 'scheduled'; $queue->save(); return array(