mirror of
https://github.com/friendica/friendica
synced 2025-04-28 01:50:13 +00:00
Merge pull request #12562 from MrPetovan/bug/notices
Ward againt contact_id = 0 in UpdateContact worker
This commit is contained in:
commit
4faf08c064
5 changed files with 71 additions and 17 deletions
|
@ -22,15 +22,19 @@
|
|||
namespace Friendica\Worker;
|
||||
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Model\Contact;
|
||||
use Friendica\Network\HTTPException\InternalServerErrorException;
|
||||
|
||||
class UpdateContact
|
||||
{
|
||||
/**
|
||||
* Update contact data via probe
|
||||
*
|
||||
* @param int $contact_id Contact ID
|
||||
* @param int $contact_id Contact ID
|
||||
* @return void
|
||||
* @throws InternalServerErrorException
|
||||
* @throws \ImagickException
|
||||
*/
|
||||
public static function execute(int $contact_id)
|
||||
{
|
||||
|
@ -38,4 +42,19 @@ class UpdateContact
|
|||
|
||||
Logger::info('Updated from probe', ['id' => $contact_id, 'success' => $success]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array|int $run_parameters Priority constant or array of options described in Worker::add
|
||||
* @param int $contact_id
|
||||
* @return int
|
||||
* @throws InternalServerErrorException
|
||||
*/
|
||||
public static function add($run_parameters, int $contact_id): int
|
||||
{
|
||||
if (!$contact_id) {
|
||||
throw new \InvalidArgumentException('Invalid value provided for contact_id');
|
||||
}
|
||||
|
||||
return Worker::add($run_parameters, 'UpdateContact', $contact_id);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -63,15 +63,21 @@ class UpdateContacts
|
|||
if (Contact::isLocal($contact['url'])) {
|
||||
continue;
|
||||
}
|
||||
if ((!empty($contact['gsid']) || !empty($contact['baseurl'])) && GServer::reachable($contact)) {
|
||||
$stamp = (float)microtime(true);
|
||||
$success = Contact::updateFromProbe($contact['id']);
|
||||
Logger::debug('Direct update', ['id' => $contact['id'], 'count' => $count, 'duration' => round((float)microtime(true) - $stamp, 3), 'success' => $success]);
|
||||
++$count;
|
||||
} elseif (Worker::add(['priority' => Worker::PRIORITY_LOW, 'dont_fork' => true], 'UpdateContact', $contact['id'])) {
|
||||
Logger::debug('Update by worker', ['id' => $contact['id'], 'count' => $count]);
|
||||
++$count;
|
||||
|
||||
try {
|
||||
if ((!empty($contact['gsid']) || !empty($contact['baseurl'])) && GServer::reachable($contact)) {
|
||||
$stamp = (float)microtime(true);
|
||||
$success = Contact::updateFromProbe($contact['id']);
|
||||
Logger::debug('Direct update', ['id' => $contact['id'], 'count' => $count, 'duration' => round((float)microtime(true) - $stamp, 3), 'success' => $success]);
|
||||
++$count;
|
||||
} elseif (UpdateContact::add(['priority' => Worker::PRIORITY_LOW, 'dont_fork' => true], $contact['id'])) {
|
||||
Logger::debug('Update by worker', ['id' => $contact['id'], 'count' => $count]);
|
||||
++$count;
|
||||
}
|
||||
} catch (\InvalidArgumentException $e) {
|
||||
Logger::notice($e->getMessage(), ['contact' => $contact]);
|
||||
}
|
||||
|
||||
Worker::coolDown();
|
||||
}
|
||||
DBA::close($contacts);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue