From 4f362f66933e088efdc1cc086014b33da80827e0 Mon Sep 17 00:00:00 2001 From: Michael <heluecht@pirati.ca> Date: Thu, 6 Feb 2020 00:00:00 +0000 Subject: [PATCH] Asynchronously add contacts to avoid timeout problems --- mod/settings.php | 2 +- src/Worker/AddContact.php | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/Worker/AddContact.php diff --git a/mod/settings.php b/mod/settings.php index 69d9c77c9f..dde7bbf478 100644 --- a/mod/settings.php +++ b/mod/settings.php @@ -403,7 +403,7 @@ function settings_post(App $a) // "http" or "@" to be present in the string. // All other fields from the row will be ignored if ((strpos($csvRow[0],'@') !== false) || (strpos($csvRow[0],'http') !== false)) { - $arr = Contact::createFromProbe($_SESSION['uid'], $csvRow[0], '', false); + Worker::add(PRIORITY_LOW, 'AddContact', $_SESSION['uid'], $csvRow[0]); } } info(DI::l10n()->t('Importing Contacts done')); diff --git a/src/Worker/AddContact.php b/src/Worker/AddContact.php new file mode 100644 index 0000000000..47d9d01375 --- /dev/null +++ b/src/Worker/AddContact.php @@ -0,0 +1,24 @@ +<?php + +/** + * @file src/Worker/AddContact.php + */ + +namespace Friendica\Worker; + +use Friendica\Core\Logger; +use Friendica\Model\Contact; + +class AddContact +{ + /** + * Add contact data via probe + * @param int $uid User ID + * @param string $url Contact link + */ + public static function execute(int $uid, string $url) + { + $result = Contact::createFromProbe($uid, $url, '', false); + Logger::info('Added contact', ['uid' => $uid, 'url' => $url, 'result' => $result]); + } +}