return;
}
- // Inherit the priority
- $queue = dba::select('workerqueue', array('priority', 'created'), array('pid' => getmypid()), array('limit' => 1));
- if (dbm::is_result($queue)) {
- $priority = (int)$queue['priority'];
- $process_created = $queue['created'];
- logger('inherited priority: '.$priority);
- } else {
- // Normally this shouldn't happen.
- $priority = PRIORITY_HIGH;
- $process_created = datetime_convert();
- logger('no inherited priority! Something is wrong.');
- }
-
logger('notifier: invoked: ' . print_r($argv,true), LOGGER_DEBUG);
$cmd = $argv[1];
// a delivery fork. private groups (forum_mode == 2) do not uplink
if ((intval($parent['forum_mode']) == 1) && (! $top_level) && ($cmd !== 'uplink')) {
- proc_run($priority, 'include/notifier.php', 'uplink', $item_id);
+ proc_run($a->queue['priority'], 'include/notifier.php', 'uplink', $item_id);
}
$conversants = array();
}
logger("Deliver ".$target_item["guid"]." to ".$contact['url']." via network ".$contact['network'], LOGGER_DEBUG);
- proc_run(array('priority' => $priority, 'created' => $process_created, 'dont_fork' => true),
+ proc_run(array('priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true),
'include/delivery.php', $cmd, $item_id, $contact['id']);
}
}
if ((! $mail) && (! $fsuggest) && (! $followup)) {
logger('notifier: delivery agent: '.$rr['name'].' '.$rr['id'].' '.$rr['network'].' '.$target_item["guid"]);
- proc_run(array('priority' => $priority, 'created' => $process_created, 'dont_fork' => true),
+ proc_run(array('priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true),
'include/delivery.php', $cmd, $item_id, $rr['id']);
}
}
}
// Handling the pubsubhubbub requests
- proc_run(array('priority' => PRIORITY_HIGH, 'created' => $process_created, 'dont_fork' => true),
+ proc_run(array('priority' => PRIORITY_HIGH, 'created' => $a->queue['created'], 'dont_fork' => true),
'include/pubsubpublish.php');
}
// We fetch the next queue entry that is about to be executed
while ($r = poller_worker_process()) {
+ // Assure that the priority is an integer value
+ $r[0]['priority'] = (int)$r[0]['priority'];
+
// If we got that queue entry we claim it for us
if (!poller_claim_process($r[0])) {
dba::unlock();
// But preserve the old one for the worker
$old_process_id = $a->process_id;
$a->process_id = uniqid("wrk", true);
+ $a->queue = $queue;
$funcname($argv, $argc);
$a->process_id = $old_process_id;
+ unset($a->queue);
$duration = number_format(microtime(true) - $stamp, 3);
require_once('include/ostatus.php');
function pubsubpublish_run(&$argv, &$argc){
+ global $a;
if ($argc > 1) {
$pubsubpublish_id = intval($argv[1]);
} else {
- // Inherit the creation time
- $queue = dba::select('workerqueue', array('created'), array('pid' => getmypid()), array('limit' => 1));
- if (dbm::is_result($queue)) {
- $process_created = $queue['created'];
- } else {
- // Normally this shouldn't happen.
- $process_created = datetime_convert();
- logger('no inherited priority! Something is wrong.');
- }
-
// We'll push to each subscriber that has push > 0,
// i.e. there has been an update (set in notifier.php).
$r = q("SELECT `id`, `callback_url` FROM `push_subscriber` WHERE `push` > 0");
foreach ($r as $rr) {
logger("Publish feed to ".$rr["callback_url"], LOGGER_DEBUG);
- proc_run(array('priority' => PRIORITY_HIGH, 'created' => $process_created, 'dont_fork' => true),
+ proc_run(array('priority' => PRIORITY_HIGH, 'created' => $a->queue['created'], 'dont_fork' => true),
'include/pubsubpublish.php', $rr["id"]);
}
}