PubSubHub Plugin: make 1 external call per request (#1877)
On bulk operations, this plugin heavily impacts performances because it make 1 external request per link saved. Add a simple limit to only make one call per request.
This commit is contained in:
parent
84b37c7baa
commit
cd618bd8be
1 changed files with 8 additions and 0 deletions
|
@ -48,6 +48,8 @@ function hook_pubsubhubbub_render_feed($data, $conf)
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$published = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Save link hook.
|
* Save link hook.
|
||||||
* Publish to the hub when a link is saved.
|
* Publish to the hub when a link is saved.
|
||||||
|
@ -59,6 +61,11 @@ function hook_pubsubhubbub_render_feed($data, $conf)
|
||||||
*/
|
*/
|
||||||
function hook_pubsubhubbub_save_link($data, $conf)
|
function hook_pubsubhubbub_save_link($data, $conf)
|
||||||
{
|
{
|
||||||
|
global $published;
|
||||||
|
if ($published) {
|
||||||
|
return $data;
|
||||||
|
}
|
||||||
|
|
||||||
$feeds = [
|
$feeds = [
|
||||||
index_url($_SERVER) . 'feed/atom',
|
index_url($_SERVER) . 'feed/atom',
|
||||||
index_url($_SERVER) . 'feed/rss',
|
index_url($_SERVER) . 'feed/rss',
|
||||||
|
@ -68,6 +75,7 @@ function hook_pubsubhubbub_save_link($data, $conf)
|
||||||
try {
|
try {
|
||||||
$p = new Publisher($conf->get('plugins.PUBSUBHUB_URL'));
|
$p = new Publisher($conf->get('plugins.PUBSUBHUB_URL'));
|
||||||
$p->publish_update($feeds, $httpPost);
|
$p->publish_update($feeds, $httpPost);
|
||||||
|
$published = true;
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
error_log(sprintf(t('Could not publish to PubSubHubbub: %s'), $e->getMessage()));
|
error_log(sprintf(t('Could not publish to PubSubHubbub: %s'), $e->getMessage()));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue