Cron update + removing console.log

- use Setting::getValue for getDaemon method
- added "updated_at" property within cron_daemon value (instead of using the setting's column)
- converted line endings to Unix in notice.js and removed console.log
This commit is contained in:
Jonathan Labreuille
2016-01-08 12:02:11 +01:00
parent 5996696cc9
commit 82a736ffbb
3 changed files with 226 additions and 233 deletions

View File

@@ -78,7 +78,6 @@ define('notice', ['mailpoet', 'jquery'], function(MailPoet, jQuery) {
} else { } else {
positionAfter = jQuery('#mailpoet_notice_'+this.options.type); positionAfter = jQuery('#mailpoet_notice_'+this.options.type);
} }
console.log('positionAfter', typeof this.options.positionAfter);
positionAfter.after(this.element); positionAfter.after(this.element);
// setup onClose callback // setup onClose callback

View File

@@ -48,9 +48,14 @@ class Daemon {
$_SESSION['cron_daemon'] = 'started'; $_SESSION['cron_daemon'] = 'started';
$_SESSION['cron_daemon'] = array('result' => true); $_SESSION['cron_daemon'] = array('result' => true);
$this->manageSession('end'); $this->manageSession('end');
$daemon['status'] = 'started'; $daemon['status'] = 'started';
$daemon['token'] = $this->refreshed_token; $daemon['token'] = $this->refreshed_token;
$this->saveDaemon($daemon); $this->saveDaemon(array(
'status' => 'started',
'token' => $this->refreshed_token,
'updated_at' => time()
));
$this->callSelf(); $this->callSelf();
} }
$this->manageSession('end'); $this->manageSession('end');
@@ -79,10 +84,12 @@ class Daemon {
if($elapsed_time < 30) { if($elapsed_time < 30) {
sleep(30 - $elapsed_time); sleep(30 - $elapsed_time);
} }
// after each execution, read daemon in case it's status was modified // after each execution, read daemon in case its status was modified
$daemon = $this->getDaemon(); $daemon = $this->getDaemon();
if($daemon['status'] === 'stopping') $daemon['status'] = 'stopped'; if($daemon['status'] === 'stopping') $daemon['status'] = 'stopped';
if($daemon['status'] === 'starting') $daemon['status'] = 'started'; if($daemon['status'] === 'starting') $daemon['status'] = 'started';
$daemon['token'] = $this->refreshed_token; $daemon['token'] = $this->refreshed_token;
$daemon['counter']++; $daemon['counter']++;
$this->saveDaemon($daemon); $this->saveDaemon($daemon);
@@ -90,7 +97,7 @@ class Daemon {
} }
function getDaemon() { function getDaemon() {
return Setting::getValue('cron_daemon', null); return Setting::getValue('cron_daemon');
} }
function saveDaemon($daemon_data) { function saveDaemon($daemon_data) {

View File

@@ -1,7 +1,6 @@
<?php <?php
namespace MailPoet\Cron; namespace MailPoet\Cron;
use Carbon\Carbon;
use MailPoet\Config\Env; use MailPoet\Config\Env;
use MailPoet\Models\Setting; use MailPoet\Models\Setting;
@@ -22,25 +21,27 @@ class Supervisor {
if(!$this->daemon) { if(!$this->daemon) {
return $this->startDaemon(); return $this->startDaemon();
} }
if(!$this->force_start && ( if(
$this->daemon['value']['status'] === 'stopped' || !$this->force_start &&
$this->daemon['value']['status'] === 'stopping') in_array($this->daemon['status'], array('stopped', 'stopping'))
) { ) {
return $this->daemon['value']['status']; return $this->daemon['status'];
} }
$time_since_last_run = $this->getDaemonLastRunTime();
if($time_since_last_run < 40) { $elapsed_time = time() - (int)$this->daemon['updated_at'];
if($elapsed_time < 40) {
if(!$this->force_start) { if(!$this->force_start) {
return; return;
} }
if($this->daemon['value']['status'] === 'stopping' || if($this->daemon['status'] === 'stopping' ||
$this->daemon['value']['status'] === 'starting' $this->daemon['status'] === 'starting'
) { ) {
return $this->daemon['value']['status']; return $this->daemon['status'];
} }
} }
$this->daemon['value']['status'] = 'starting'; $this->daemon['status'] = 'starting';
$this->saveDaemon($this->daemon['value']); $this->saveDaemon($this->daemon);
return $this->startDaemon(); return $this->startDaemon();
} }
@@ -62,12 +63,7 @@ class Supervisor {
} }
function getDaemon() { function getDaemon() {
$daemon = Setting::where('name', 'cron_daemon') return Setting::getValue('cron_daemon');
->findOne();
if(!$daemon) return false;
$daemon = $daemon->asArray();
$daemon['value'] = unserialize($daemon['value']);
return $daemon;
} }
function saveDaemon($daemon_data) { function saveDaemon($daemon_data) {
@@ -104,13 +100,4 @@ class Supervisor {
// throw an error if all connections fail // throw an error if all connections fail
throw new \Exception(__('Site URL is unreachable.')); throw new \Exception(__('Site URL is unreachable.'));
} }
function getDaemonLastRunTime() {
$current_time = Carbon::now('UTC');
$last_update_time = Carbon::createFromFormat(
'Y-m-d H:i:s',
$this->daemon['updated_at'], 'UTC'
);
return $current_time->diffInSeconds($last_update_time);
}
} }