aboutsummaryrefslogtreecommitdiffstats
path: root/include/delivery.php
diff options
context:
space:
mode:
authorMichael Vogel <icarus@dabo.de>2012-05-09 14:56:48 +0200
committerMichael Vogel <icarus@dabo.de>2012-05-09 14:56:48 +0200
commitf2e648d62fe7cafb9a55c7505687ea4d1c294778 (patch)
tree07a1b31339ccd871bb4fbfe73e3f0d4911689795 /include/delivery.php
parenta3f08c44be78d4517e9f1619811def09b2ec7e7a (diff)
parent53157bb954acb7597347c6b4a87e64e7a2f6cc79 (diff)
downloadvolse-hubzilla-f2e648d62fe7cafb9a55c7505687ea4d1c294778.tar.gz
volse-hubzilla-f2e648d62fe7cafb9a55c7505687ea4d1c294778.tar.bz2
volse-hubzilla-f2e648d62fe7cafb9a55c7505687ea4d1c294778.zip
Merge remote branch 'upstream/master'
Diffstat (limited to 'include/delivery.php')
-rw-r--r--include/delivery.php22
1 files changed, 20 insertions, 2 deletions
diff --git a/include/delivery.php b/include/delivery.php
index 794b8f27a..5f84a548a 100644
--- a/include/delivery.php
+++ b/include/delivery.php
@@ -51,6 +51,17 @@ function delivery_run($argv, $argc){
return;
}
+ $maxsysload = intval(get_config('system','maxloadavg'));
+ if($maxsysload < 1)
+ $maxsysload = 50;
+ if(function_exists('sys_getloadavg')) {
+ $load = sys_getloadavg();
+ if(intval($load[0]) > $maxsysload) {
+ logger('system: load ' . $load . ' too high. Delivery deferred to next queue run.');
+ return;
+ }
+ }
+
// It's ours to deliver. Remove it from the queue.
q("delete from deliverq where cmd = '%s' and item = %d and contact = %d limit 1",
@@ -336,7 +347,10 @@ function delivery_run($argv, $argc){
}
}
- $deliver_status = dfrn_deliver($owner,$contact,$atom);
+ if(! was_recently_delayed($contact['id']))
+ $deliver_status = dfrn_deliver($owner,$contact,$atom);
+ else
+ $deliver_status = (-1);
logger('notifier: dfrn_delivery returns ' . $deliver_status);
@@ -379,7 +393,11 @@ function delivery_run($argv, $argc){
logger('notifier: slapdelivery: ' . $contact['name']);
foreach($slaps as $slappy) {
if($contact['notify']) {
- $deliver_status = slapper($owner,$contact['notify'],$slappy);
+ if(! was_recently_delayed($contact['id']))
+ $deliver_status = slapper($owner,$contact['notify'],$slappy);
+ else
+ $deliver_status = (-1);
+
if($deliver_status == (-1)) {
// queue message for redelivery
add_to_queue($contact['id'],NETWORK_OSTATUS,$slappy);