From 011ccd57f62335c915b5ac75e20c45a36a64a888 Mon Sep 17 00:00:00 2001 From: friendica Date: Wed, 4 Mar 2015 17:56:07 -0800 Subject: add queue priority --- boot.php | 2 +- include/deliver.php | 18 ++++++++++++++++++ install/schema_mysql.sql | 4 +++- install/schema_postgres.sql | 2 ++ install/update.php | 11 ++++++++++- 5 files changed, 34 insertions(+), 3 deletions(-) diff --git a/boot.php b/boot.php index 4ed5d34c4..5f8dd20fd 100755 --- a/boot.php +++ b/boot.php @@ -49,7 +49,7 @@ define ( 'RED_PLATFORM', 'redmatrix' ); define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R'); define ( 'ZOT_REVISION', 1 ); -define ( 'DB_UPDATE_VERSION', 1138 ); +define ( 'DB_UPDATE_VERSION', 1139 ); /** * Constant with a HTML line break. diff --git a/include/deliver.php b/include/deliver.php index 47d8562df..459c0f94b 100644 --- a/include/deliver.php +++ b/include/deliver.php @@ -20,6 +20,24 @@ function deliver_run($argv, $argc) { dbesc($argv[$x]) ); if($r) { + $h = parse_url($r[0]['outq_posturl']); + if($h) { + $base = $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : ''); + if($base !== z_root()) { + $x = q("select site_update from site where site_url = '%s' ", + dbesc($base) + ); + if($x && $x[0]['site_update'] < datetime_convert('UTC','UTC','now - 1 month')) { + q("update outq set outq_priority = %d where outq_hash = '%s'", + intval($r[0]['outq_priority'] + 10) + dbesc($r[0]['outq_hash']) + ); + logger('immediate delivery deferred for site ' . $base); + continue; + } + } + } + if($r[0]['outq_driver'] === 'post') { $result = z_post_url($r[0]['outq_posturl'],$r[0]['outq_msg']); if($result['success'] && $result['return_code'] < 300) { diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql index da78d9c61..4e481f5c0 100644 --- a/install/schema_mysql.sql +++ b/install/schema_mysql.sql @@ -940,6 +940,7 @@ CREATE TABLE IF NOT EXISTS `outq` ( `outq_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `outq_notify` mediumtext NOT NULL, `outq_msg` mediumtext NOT NULL, + `outq_priority` smallint NOT NULL DEFAULT '0', PRIMARY KEY (`outq_hash`), KEY `outq_account` (`outq_account`), KEY `outq_channel` (`outq_channel`), @@ -947,7 +948,8 @@ CREATE TABLE IF NOT EXISTS `outq` ( KEY `outq_created` (`outq_created`), KEY `outq_updated` (`outq_updated`), KEY `outq_async` (`outq_async`), - KEY `outq_delivered` (`outq_delivered`) + KEY `outq_delivered` (`outq_delivered`), + KEY `outq_priority` (`outq_priority`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- -------------------------------------------------------- diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql index 44b8f16a4..20285a352 100644 --- a/install/schema_postgres.sql +++ b/install/schema_postgres.sql @@ -725,6 +725,7 @@ CREATE TABLE "outq" ( "outq_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00', "outq_notify" text NOT NULL, "outq_msg" text NOT NULL, + "outq_priority" smallint NOT NULL DEFAULT '0', PRIMARY KEY ("outq_hash") ); create index "outq_account" on outq ("outq_account"); @@ -734,6 +735,7 @@ create index "outq_created" on outq ("outq_created"); create index "outq_updated" on outq ("outq_updated"); create index "outq_async" on outq ("outq_async"); create index "outq_delivered" on outq ("outq_delivered"); +create index "outq_priority" on outq ("outq_priority"); CREATE TABLE "pconfig" ( "id" serial NOT NULL, diff --git a/install/update.php b/install/update.php index 70ffb1ebf..75805513d 100644 --- a/install/update.php +++ b/install/update.php @@ -1,6 +1,6 @@