fixup! feat: add scheduled messages BG job

This commit is contained in:
Anna Larch 2025-12-16 19:40:49 +01:00
parent d041252376
commit 5f1a897f24

View file

@ -61,7 +61,6 @@ class SendScheduledMessages extends TimedJob {
#[\Override]
protected function run($argument): void {
$time = $this->time->getDateTime('-1 second');
$this->logger->error('time: ' . $time->format('Y-m-d H:i:s'));
try {
$messages = $this->scheduledMessageService->getDue($time);
$this->logger->error(count($messages) . ' messages found');
@ -89,12 +88,8 @@ class SendScheduledMessages extends TimedJob {
}
$room = $rooms[$message->getRoomId()];
$this->logger->error('Getting room ' . $room->getId());
try {
$participant = $this->participantService->getParticipantByActor($room, $message->getActorType(), $message->getActorId());
$this->logger->error('Got participant ' . $participant->getAttendee()->getActorId());
} catch (ParticipantNotFoundException $e) {
$this->logger->error('Participant not found', ['exception' => $e]);
$this->scheduledMessageService->deleteMessage($room, $message->getId(), $message->getActorType(), $message->getActorId());
@ -124,14 +119,12 @@ class SendScheduledMessages extends TimedJob {
$parent = $parentMessage = null;
if ($message->getParentId() !== 0 && $message->getParentId() !== null) {
try {
$this->logger->error('Getting parent');
$parent = $this->chatManager->getParentComment($room, (string)$message->getParentId());
$parentMessage = $this->messageParser->createMessage($room, $participant, $parent, $this->l10n);
$this->messageParser->parseMessage($parentMessage);
if (!$parentMessage->isReplyable()) {
// Log and continue or delete?
$this->logger->error('Parent message for scheduled message not replyable');
$this->logger->error('Message to delete: ' . $message->getId());
$this->scheduledMessageService->deleteMessage(
$room,
$message->getId(),
@ -145,11 +138,9 @@ class SendScheduledMessages extends TimedJob {
$this->logger->error('Parent for scheduled message not found', ['exception' => $e]);
}
} elseif ($message->getThreadId() !== 0 && $message->getThreadId() !== -1) {
$this->logger->error('Thread ' . $message->getThreadId());
if (!$this->threadService->validateThread($room->getId(), $message->getThreadId())) {
$this->logger->error('Could not validate thread for scheduled message');
$message->setThreadId(0);
$this->logger->error('Set thread to 0 for ' . $message->getId());
$this->logger->error('Could not validate thread for scheduled message, set thread to 0 for ' . $message->getId());
}
}
@ -170,11 +161,9 @@ class SendScheduledMessages extends TimedJob {
'',
$metaData[ScheduledMessage::METADATA_SILENT] ?? false,
threadId: $threadId);
$this->logger->error('Sent messag: #' . $message->getId() . ' ' . $comment->getMessage());
$this->logger->debug('Sent message #' . $message->getId() . ' ' . $comment->getMessage());
if ($threadId === Thread::THREAD_CREATE && $threadTitle !== '') {
$this->logger->error('thread');
$thread = $this->threadService->createThread($room, (int)$comment->getId(), $threadTitle);
$this->logger->error('Thread created');
// Add to subscribed threads list
$this->threadService->setNotificationLevel($participant->getAttendee(), $thread->getId(), Participant::NOTIFY_DEFAULT);
@ -204,11 +193,8 @@ class SendScheduledMessages extends TimedJob {
continue;
}
$this->logger->error('Message sent: ' . $message->getMessage());
$deleted = $this->scheduledMessageService->deleteMessage($room, (string)$message->getId(), $message->getActorType(), $message->getActorId());
$this->logger->error('Deleted: ' . $deleted);
$hasScheduledMessages = $this->scheduledMessageService->getScheduledMessageCount($room, $participant);
$this->logger->error('Scheduled message count' . $hasScheduledMessages);
$this->participantService->setHasScheduledMessages($participant, $hasScheduledMessages);
}
}