Заполнение подачи? - PullRequest
2 голосов
/ 18 июня 2019

Есть ли способ вставить действия в ленту новостей, чтобы они выглядели так, как если бы они были вставлены в определенное время в прошлом?Я предполагал, что при добавлении элементов в фид он будет использовать значение «время» для сортировки результатов, даже если они распространяются на другие фиды после исходного фида, но, похоже, это не так, и они просто сортируются в порядке ихбыли добавлены в фид.

Я работаю над графиком шкалы времени для наших пользователей, и у меня есть несколько причин, по которым я хочу добавить действия в предыдущие моменты времени:

1)У нас есть большое количество сущностей в нашей базе данных, но за ними будет следовать относительно небольшое число (особенно поначалу), поэтому для большей эффективности я планировал добавлять действия для сущности только тогда, когда у нее есть хотя бы один подписчик.После того, как кто-то последует за ним, я хотел бы вернуться на 14 дней назад и вставить действия для этой сущности, как если бы они были созданы в то время, когда они произошли, чтобы новый подписчик увидел их в своей ленте в соответствующем месте.В настоящее время они просто увидят огромную группу действий из прошлого в верхней части своего канала, что бесполезно.

2) Точно так же у нас уже есть определенные следующие отношения в нашей базе данных, и при запуске я хотел бывернитесь назад на определенное количество времени и вставьте действия для всех сущностей, у которых уже есть подписчики, чтобы лента сразу стала полезной.

Есть ли способ сделать это, или мне не повезло?

Мои каналы представляют собой комбинацию плоских и агрегированных каналов - основная временная шкала для пользователя агрегирована, но большинство каналов объектов являются плоскими.Все мои группы агрегации будут основываться на времени действия, поэтому в идеале должен быть способ сортировать и итоговые группы агрегации по времени.

1 Ответ

1 голос
/ 20 июня 2019

Ленты в потоке сортируются по-разному в зависимости от их типа:

Плоские каналы сортируются по убыванию времени активности

Агрегированные каналы и каналы уведомлений сортируют группы действий на основе последних обновленных действийвнутренние группы отсортированы по убыванию времени)

Это означает, что вы можете заполнять плоские каналы, но не агрегированные каналы.

Один из возможных способов получить что-то похожее на то, что вы описываете, - создать подпискуотношение с copy_limit установлено на меньшее число, так что только самые последние действия распространяются на подписчиков.

...