Asynchronously add contacts to avoid timeout problems

This commit is contained in:
Michael 2020-02-06 00:00:00 +00:00
parent 6347578978
commit 4f362f6693
2 changed files with 25 additions and 1 deletions

View File

@ -403,7 +403,7 @@ function settings_post(App $a)
// "http" or "@" to be present in the string. // "http" or "@" to be present in the string.
// All other fields from the row will be ignored // All other fields from the row will be ignored
if ((strpos($csvRow[0],'@') !== false) || (strpos($csvRow[0],'http') !== false)) { 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')); info(DI::l10n()->t('Importing Contacts done'));

24
src/Worker/AddContact.php Normal file
View File

@ -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]);
}
}