mirror of
https://github.com/friendica/friendica
synced 2025-04-26 21:10:16 +00:00
Bulk delivery added for all protocols
This commit is contained in:
parent
3fcc45a720
commit
259b99e6e9
12 changed files with 398 additions and 49 deletions
|
@ -164,6 +164,25 @@ class GServer
|
|||
return DI::dba()->toArray($stmt);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given server id is reachable
|
||||
*
|
||||
* @param integer $gsid
|
||||
* @return boolean
|
||||
*/
|
||||
public static function reachableById(int $gsid): bool
|
||||
{
|
||||
$gserver = DBA::selectFirst('gserver', ['url', 'next_contact', 'failed', 'network'], ['id' => $gsid]);
|
||||
if (empty($gserver)) {
|
||||
return true;
|
||||
} else {
|
||||
if (strtotime($gserver['next_contact']) < time()) {
|
||||
Worker::add(Worker::PRIORITY_LOW, 'UpdateGServer', $gserver['url'], false);
|
||||
}
|
||||
return !$gserver['failed'] && in_array($gserver['network'], Protocol::FEDERATED);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the given server is reachable
|
||||
*
|
||||
|
@ -305,6 +324,42 @@ class GServer
|
|||
return self::detect($server_url, $network, $only_nodeinfo);
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset failed server status by gserver id
|
||||
*
|
||||
* @param int $gsid
|
||||
*/
|
||||
public static function setReachableById(int $gsid)
|
||||
{
|
||||
$gserver = DBA::selectFirst('gserver', ['url', 'failed', 'next_contact'], ['id' => $gsid]);
|
||||
if (DBA::isResult($gserver) && $gserver['failed']) {
|
||||
self::update(['failed' => false, 'last_contact' => DateTimeFormat::utcNow()], ['id' => $gsid]);
|
||||
Logger::info('Reset failed status for server', ['url' => $gserver['url']]);
|
||||
|
||||
if (strtotime($gserver['next_contact']) < time()) {
|
||||
Worker::add(Worker::PRIORITY_LOW, 'UpdateGServer', $gserver['url'], false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set failed server status by gserver id
|
||||
*
|
||||
* @param int $gsid
|
||||
*/
|
||||
public static function setFailureById(int $gsid)
|
||||
{
|
||||
$gserver = DBA::selectFirst('gserver', ['url', 'failed', 'next_contact'], ['id' => $gsid]);
|
||||
if (DBA::isResult($gserver) && !$gserver['failed']) {
|
||||
self::update(['failed' => true, 'last_failure' => DateTimeFormat::utcNow()], ['id' => $gsid]);
|
||||
Logger::info('Set failed status for server', ['url' => $gserver['url']]);
|
||||
|
||||
if (strtotime($gserver['next_contact']) < time()) {
|
||||
Worker::add(Worker::PRIORITY_LOW, 'UpdateGServer', $gserver['url'], false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set failed server status
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue