1
0
Fork 0

Recursively delete failed worker tasks

This commit is contained in:
Michael 2022-07-24 09:26:52 +00:00
commit 06280aa5a3
5 changed files with 82 additions and 30 deletions

View file

@ -128,11 +128,14 @@ class Cron
if (DI::config()->get('system', 'optimize_tables')) {
Worker::add(PRIORITY_LOW, 'OptimizeTables');
}
DI::config()->set('system', 'last_cron_daily', time());
// Process all unprocessed entries
Queue::processAll();
// Resubscribe to relay servers
Relay::reSubscribe();
DI::config()->set('system', 'last_cron_daily', time());
}
Logger::notice('end');

View file

@ -23,6 +23,7 @@ namespace Friendica\Worker;
use Friendica\Core\Logger;
use Friendica\Core\Worker;
use Friendica\DI;
use Friendica\Protocol\ActivityPub;
use Friendica\Protocol\ActivityPub\Queue;
use Friendica\Protocol\ActivityPub\Receiver;
@ -32,6 +33,8 @@ class FetchMissingActivity
/**
* Fetch missing activities
* @param string $url Contact URL
*
* @return void
*/
public static function execute(string $url, array $child = [], string $relay_actor = '', int $completion = Receiver::COMPLETION_MANUAL)
{
@ -39,10 +42,14 @@ class FetchMissingActivity
$result = ActivityPub\Processor::fetchMissingActivity($url, $child, $relay_actor, $completion);
if ($result) {
Logger::info('Successfully fetched missing activity', ['url' => $url]);
Queue::processReplyByUri($url);
} elseif (!Worker::defer()) {
// @todo perform recursive deletion of all entries
Logger::info('Activity could not be fetched', ['url' => $url]);
// recursively delete all entries that belong to this worker task
$queue = DI::app()->getQueue();
if (!empty($queue['id'])) {
Queue::deleteByWorkerId($queue['id']);
}
} else {
Logger::info('Fetching deferred', ['url' => $url]);
}