public $videowidth = 425;
public $videoheight = 350;
public $theme_events_in_profile = true;
- public $queue;
- private $timezone = '';
+ private $timezone = '';
private $profile_owner = 0;
private $contact_id = 0;
+ private $queue = [];
/**
* @var App\Mode The Mode of the Application
/**
* Set the profile owner ID
*
- * @param int $owner_id
- * @return void
+ * @param int $owner_id
+ * @return void
*/
public function setProfileOwner(int $owner_id)
{
/**
* Get the profile owner ID
*
- * @return int
+ * @return int
*/
public function getProfileOwner():int
{
/**
* Set the contact ID
- *
- * @param int $contact_id
- * @return void
+ *
+ * @param int $contact_id
+ * @return void
*/
public function setContactId(int $contact_id)
{
/**
* Get the contact ID
*
- * @return int
+ * @return int
*/
public function getContactId():int
{
/**
* Set the timezone
- *
- * @param int $timezone
- * @return void
+ *
+ * @param int $timezone
+ * @return void
*/
public function setTimeZone(string $timezone)
{
/**
* Get the timezone
*
- * @return int
+ * @return int
*/
public function getTimeZone():string
{
return $this->timezone;
}
+ public function setQueue(array $queue)
+ {
+ $this->queue = $queue;
+ }
+
+ public function getQueue()
+ {
+ return $this->queue ?? [];
+ }
+
+ public function getQueueValue(string $index)
+ {
+ return $this->queue[$index] ?? null;
+ }
+
/**
* Returns the current config cache of this node
*
$queue['priority'] = PRIORITY_MEDIUM;
}
- $a->queue = $queue;
+ $a->setQueue($queue);
$up_duration = microtime(true) - self::$up_start;
Logger::disableWorker();
- unset($a->queue);
+ $a->setQueue([]);
$duration = (microtime(true) - $stamp);
$stamp = (float)microtime(true);
$queues = DBA::p("SELECT `process`.`pid`, COUNT(`workerqueue`.`pid`) AS `entries` FROM `process`
- LEFT JOIN `workerqueue` ON `workerqueue`.`pid` = `process`.`pid` AND NOT `workerqueue`.`done`
+ LEFT JOIN `workerqueue` ON `workerqueue`.`pid` = `process`.`pid` AND NOT `workerqueue`.`done`
GROUP BY `process`.`pid`");
while ($queue = DBA::fetch($queues)) {
$ids[$queue['pid']] = $queue['entries'];
*/
public static function defer()
{
- if (empty(DI::app()->queue)) {
+ $queue = DI::app()->getQueue();
+
+ if (empty($queue)) {
return false;
}
- $queue = DI::app()->queue;
-
$retrial = $queue['retrial'];
$id = $queue['id'];
$priority = $queue['priority'];
} else {
Logger::info('We are outside the maintenance window', ['current' => date('H:i:s', $current), 'start' => date('H:i:s', $start), 'end' => date('H:i:s', $end)]);
}
-
+
return $execute;
}
}
$r = DBA::p("SELECT `uid`, `username` FROM `user` WHERE `expire` != 0");
while ($row = DBA::fetch($r)) {
Logger::info('Calling expiry', ['user' => $row['uid'], 'username' => $row['username']]);
- Worker::add(['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true],
+ Worker::add(['priority' => $a->getQueueValue('priority'), 'created' => $a->getQueueValue('created'), 'dont_fork' => true],
'Expire', (int)$row['uid']);
}
DBA::close($r);
Logger::notice('calling hooks');
foreach (Hook::getByName('expire') as $hook) {
Logger::info('Calling expire', ['hook' => $hook[1]]);
- Worker::add(['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true],
+ Worker::add(['priority' => $a->getQueueValue('priority'), 'created' => $a->getQueueValue('created'), 'dont_fork' => true],
'Expire', 'hook', $hook[1]);
}
foreach ($inboxes as $inbox => $receivers) {
$ap_contacts = array_merge($ap_contacts, $receivers);
Logger::info('Delivery via ActivityPub', ['cmd' => $cmd, 'target' => $target_id, 'inbox' => $inbox]);
- Worker::add(['priority' => PRIORITY_HIGH, 'created' => $a->queue['created'], 'dont_fork' => true],
+ Worker::add(['priority' => PRIORITY_HIGH, 'created' => $a->getQueueValue('created'), 'dont_fork' => true],
'APDelivery', $cmd, $target_id, $inbox, $uid, $receivers, $post_uriid);
}
} elseif ($cmd == Delivery::SUGGESTION) {
$uid = $suggest->uid;
$recipients[] = $suggest->cid;
} elseif ($cmd == Delivery::REMOVAL) {
- return self::notifySelfRemoval($target_id, $a->queue['priority'], $a->queue['created']);
+ return self::notifySelfRemoval($target_id, $a->getQueueValue('priority'), $a->getQueueValue('created'));
} elseif ($cmd == Delivery::RELOCATION) {
$uid = $target_id;
Logger::log('GUID: ' . $target_item["guid"] . ': Parent is ' . $parent['network'] . '. Thread parent is ' . $thr_parent['network'], Logger::DEBUG);
if (!self::isRemovalActivity($cmd, $owner, Protocol::ACTIVITYPUB)) {
- $apdelivery = self::activityPubDelivery($cmd, $target_item, $parent, $thr_parent, $a->queue['priority'], $a->queue['created'], $owner);
+ $apdelivery = self::activityPubDelivery($cmd, $target_item, $parent, $thr_parent, $a->getQueueValue('priority'), $a->getQueueValue('created'), $owner);
$ap_contacts = $apdelivery['contacts'];
$delivery_queue_count += $apdelivery['count'];
}
if ((intval($parent['forum_mode']) == 1) && !$top_level && ($cmd !== Delivery::UPLINK)
&& ($target_item['verb'] != Activity::ANNOUNCE)) {
- Worker::add($a->queue['priority'], 'Notifier', Delivery::UPLINK, $post_uriid, $sender_uid);
+ Worker::add($a->getQueueValue('priority'), 'Notifier', Delivery::UPLINK, $post_uriid, $sender_uid);
}
foreach ($items as $item) {
if (!empty($target_item)) {
Logger::log('Calling hooks for ' . $cmd . ' ' . $target_id, Logger::DEBUG);
- Hook::fork($a->queue['priority'], 'notifier_normal', $target_item);
+ Hook::fork($a->getQueueValue('priority'), 'notifier_normal', $target_item);
Hook::callAll('notifier_end', $target_item);
// Situation is that sometimes Friendica servers receive Friendica posts over the Diaspora protocol first.
// The conversion in Markdown reduces the formatting, so these posts should arrive after the Friendica posts.
// This is only important for high and medium priority tasks and not for Low priority jobs like deletions.
- if (($contact['network'] == Protocol::DIASPORA) && in_array($a->queue['priority'], [PRIORITY_HIGH, PRIORITY_MEDIUM])) {
- $deliver_options = ['priority' => $a->queue['priority'], 'dont_fork' => true];
+ if (($contact['network'] == Protocol::DIASPORA) && in_array($a->getQueueValue('priority'), [PRIORITY_HIGH, PRIORITY_MEDIUM])) {
+ $deliver_options = ['priority' => $a->getQueueValue('priority'), 'dont_fork' => true];
} else {
- $deliver_options = ['priority' => $a->queue['priority'], 'created' => $a->queue['created'], 'dont_fork' => true];
+ $deliver_options = ['priority' => $a->getQueueValue('priority'), 'created' => $a->getQueueValue('created'), 'dont_fork' => true];
}
if (Worker::add($deliver_options, 'Delivery', $cmd, $post_uriid, (int)$contact['id'], $sender_uid)) {
Logger::info('Activating internal PuSH', ['item' => $target_id]);
// Handling the pubsubhubbub requests
- PushSubscriber::publishFeed($owner['uid'], $a->queue['priority']);
+ PushSubscriber::publishFeed($owner['uid'], $a->getQueueValue('priority'));
}
return $delivery_queue_count;
}