Merge pull request #1253 from annando/1412-performance-improvement

Performance improvements when polling contacts
This commit is contained in:
Tobias Diekershoff 2014-12-21 10:19:55 +01:00
commit 546e2809e9
4 changed files with 28 additions and 13 deletions

View File

@ -2028,6 +2028,7 @@ function diaspora_retraction($importer,$xml) {
dbesc(datetime_convert()),
intval($r[0]['id'])
);
delete_thread($r[0]['id']);
}
}
}
@ -2100,6 +2101,7 @@ function diaspora_signed_retraction($importer,$xml,$msg) {
dbesc(datetime_convert()),
intval($r[0]['id'])
);
delete_thread($r[0]['id']);
// Now check if the retraction needs to be relayed by us
//

View File

@ -948,7 +948,12 @@ function add_page_info_data($data) {
function add_page_info($url, $no_photos = false, $photo = "", $keywords = false, $keyword_blacklist = "") {
require_once("mod/parse_url.php");
$data = Cache::get("parse_url:".$url);
if (is_null($data)){
$data = parseurl_getsiteinfo($url, true);
Cache::set("parse_url:".$url,serialize($data));
} else
$data = unserialize($data);
if ($photo != "")
$data["images"][0]["src"] = $photo;

View File

@ -57,17 +57,19 @@ function onepoll_run(&$argv, &$argc){
return;
}
// Test
$lockpath = get_lockpath();
if ($lockpath != '') {
$pidfile = new pidfile($lockpath, 'onepoll'.$contact_id);
if($pidfile->is_already_running()) {
if ($pidfile->is_already_running()) {
logger("onepoll: Already running for contact ".$contact_id);
if ($pidfile->running_time() > 9*60) {
$pidfile->kill();
logger("killed stale process");
}
exit;
}
}
$d = datetime_convert();
// Only poll from those with suitable relationships,

View File

@ -285,7 +285,13 @@ function poller_run(&$argv, &$argc){
continue;
}
// Don't run onepoll.php if the contact isn't pollable
// This check also is inside the onepoll.php - but this will reduce the load
if (in_array($contact["rel"], array(CONTACT_IS_SHARING, CONTACT_IS_FRIEND)) AND ($contact["poll"] != "")
AND !in_array($contact['network'], array(NETWORK_DIASPORA, NETWORK_FACEBOOK, NETWORK_PUMPIO, NETWORK_TWITTER, NETWORK_APPNET))
AND !$contact["self"] AND !$contact["blocked"] AND !$contact["readonly"] AND !$contact["archive"])
proc_run('php','include/onepoll.php',$contact['id']);
if($interval)
@time_sleep_until(microtime(true) + (float) $interval);
}