aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-03-24 19:40:36 -0700
committerfriendica <info@friendica.com>2014-03-24 19:40:36 -0700
commit50a7e9ce8fe30959d6e4343e8fdafaeca1e7856c (patch)
treeda864633df97fd26a9718b6c831c3fb4a938aca0
parent235b0335608439b98d74a205a380d0f77baf6b4f (diff)
downloadvolse-hubzilla-50a7e9ce8fe30959d6e4343e8fdafaeca1e7856c.tar.gz
volse-hubzilla-50a7e9ce8fe30959d6e4343e8fdafaeca1e7856c.tar.bz2
volse-hubzilla-50a7e9ce8fe30959d6e4343e8fdafaeca1e7856c.zip
this should improve queue performance dramatically.
-rw-r--r--include/directory.php5
-rw-r--r--include/notifier.php6
-rw-r--r--include/queue.php8
-rw-r--r--include/zot.php3
4 files changed, 15 insertions, 7 deletions
diff --git a/include/directory.php b/include/directory.php
index 794420b6f..c69fb1f4b 100644
--- a/include/directory.php
+++ b/include/directory.php
@@ -69,11 +69,12 @@ function directory_run($argv, $argc){
// the directory packet. That means we'll try again on the next poll run.
$hash = random_string();
- q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg )
- values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg )
+ values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
dbesc($hash),
intval($channel['channel_account_id']),
intval($channel['channel_id']),
+ dbesc('zot'),
dbesc($url),
intval(1),
dbesc(datetime_convert()),
diff --git a/include/notifier.php b/include/notifier.php
index a4a9051c3..4bf2ac153 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -486,10 +486,11 @@ function notifier_run($argv, $argc){
$hash = random_string();
if($packet_type === 'refresh' || $packet_type === 'purge') {
$n = zot_build_packet($channel,$packet_type);
- q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
dbesc($hash),
intval($channel['channel_account_id']),
intval($channel['channel_id']),
+ dbesc('zot'),
dbesc($hub['hubloc_callback']),
intval(1),
dbesc(datetime_convert()),
@@ -500,10 +501,11 @@ function notifier_run($argv, $argc){
}
else {
$n = zot_build_packet($channel,'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash);
- q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
dbesc($hash),
intval($target_item['aid']),
intval($target_item['uid']),
+ dbesc('zot'),
dbesc($hub['hubloc_callback']),
intval(1),
dbesc(datetime_convert()),
diff --git a/include/queue.php b/include/queue.php
index ec7246cb2..239d61fc0 100644
--- a/include/queue.php
+++ b/include/queue.php
@@ -33,8 +33,12 @@ function queue_run($argv, $argc){
// For the first 12 hours we'll try to deliver every 15 minutes
// After that, we'll only attempt delivery once per hour.
-
- $r = q("SELECT * FROM outq WHERE outq_delivered = 0 and (( outq_created > UTC_TIMESTAMP() - INTERVAL 12 HOUR and outq_updated < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ) OR ( outq_updated < UTC_TIMESTAMP() - INTERVAL 1 HOUR ))");
+ // This currently only handles the default queue drivers ('zot' or '') which we will group by posturl
+ // so that we don't start off a thousand deliveries for a couple of dead hubs.
+ // The zot driver will deliver everything destined for a single hub once contact is made (*if* contact is made).
+ // Other drivers will have to do something different here and may need their own query.
+
+ $r = q("SELECT * FROM outq WHERE outq_delivered = 0 and (( outq_created > UTC_TIMESTAMP() - INTERVAL 12 HOUR and outq_updated < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ) OR ( outq_updated < UTC_TIMESTAMP() - INTERVAL 1 HOUR )) and outq_driver in ('','zot') group by outq_posturl");
}
if(! $r)
return;
diff --git a/include/zot.php b/include/zot.php
index 3c9731f05..c82918b3a 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -2074,10 +2074,11 @@ function build_sync_packet($uid = 0, $packet = null) {
foreach($synchubs as $hub) {
$hash = random_string();
$n = zot_build_packet($channel,'notify',$env_recips,$hub['hubloc_sitekey'],$hash);
- q("insert into outq ( outq_hash, outq_account, outq_channel, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s' )",
+ q("insert into outq ( outq_hash, outq_account, outq_channel, outq_driver, outq_posturl, outq_async, outq_created, outq_updated, outq_notify, outq_msg ) values ( '%s', %d, %d, '%s', '%s', %d, '%s', '%s', '%s', '%s' )",
dbesc($hash),
intval($channel['channel_account']),
intval($channel['channel_id']),
+ dbesc('zot'),
dbesc($hub['hubloc_callback']),
intval(1),
dbesc(datetime_convert()),