+
+ 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();