diff options
author | Michael Vogel <icarus@dabo.de> | 2012-05-09 14:56:48 +0200 |
---|---|---|
committer | Michael Vogel <icarus@dabo.de> | 2012-05-09 14:56:48 +0200 |
commit | f2e648d62fe7cafb9a55c7505687ea4d1c294778 (patch) | |
tree | 07a1b31339ccd871bb4fbfe73e3f0d4911689795 /include/delivery.php | |
parent | a3f08c44be78d4517e9f1619811def09b2ec7e7a (diff) | |
parent | 53157bb954acb7597347c6b4a87e64e7a2f6cc79 (diff) | |
download | volse-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.php | 22 |
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); |