- Updates scheduling logic to work with the new normalized DB time

This commit is contained in:
Vlad
2016-03-22 18:26:37 -04:00
parent 7331e5cabd
commit 3b3ccc18ce
3 changed files with 6 additions and 3 deletions

View File

@@ -22,7 +22,7 @@ class Scheduler {
function process() { function process() {
$scheduled_queues = SendingQueue::where('status', 'scheduled') $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(); ->findMany();
if(!count($scheduled_queues)) return; if(!count($scheduled_queues)) return;
foreach($scheduled_queues as $queue) { foreach($scheduled_queues as $queue) {
@@ -80,7 +80,8 @@ class Scheduler {
$new_queue = SendingQueue::create(); $new_queue = SendingQueue::create();
$new_queue->newsletter_id = $newsletter->id; $new_queue->newsletter_id = $newsletter->id;
$schedule = Cron::factory($newsletter->schedule); $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->status = 'scheduled';
$new_queue->save(); $new_queue->save();
} }

View File

@@ -34,6 +34,7 @@ class SendingQueue {
foreach($this->getQueues() as $queue) { foreach($this->getQueues() as $queue) {
$newsletter = Newsletter::findOne($queue->newsletter_id); $newsletter = Newsletter::findOne($queue->newsletter_id);
if(!$newsletter) { if(!$newsletter) {
$queue->delete();
continue; continue;
} }
$newsletter = $newsletter->asArray(); $newsletter = $newsletter->asArray();

View File

@@ -62,7 +62,8 @@ class SendingQueue {
$queue->newsletter_id = $newsletter->id; $queue->newsletter_id = $newsletter->id;
} }
$schedule = Cron::factory($newsletter->schedule); $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->status = 'scheduled';
$queue->save(); $queue->save();
return array( return array(