Merge remote-tracking branch 'origin/main' into update_read_comments_on_comment_creation

This commit is contained in:
Dessalines 2024-05-23 15:24:59 -04:00
commit fa144db7f4
3 changed files with 7 additions and 5 deletions

View file

@ -652,7 +652,7 @@ impl<'a> PostQuery<'a> {
pool: &mut DbPool<'_>,
) -> Result<Option<PostQuery<'a>>, Error> {
// first get one page for the most popular community to get an upper bound for the page end for
// the real query the reason this is needed is that when fetching posts for a single
// the real query. the reason this is needed is that when fetching posts for a single
// community PostgreSQL can optimize the query to use an index on e.g. (=, >=, >=, >=) and
// fetch only LIMIT rows but for the followed-communities query it has to query the index on
// (IN, >=, >=, >=) which it currently can't do at all (as of PG 16). see the discussion

View file

@ -113,7 +113,7 @@ pub struct PostReportView {
}
/// currently this is just a wrapper around post id, but should be seen as opaque from the client's
/// perspective stringified since we might want to use arbitrary info later, with a P prepended to
/// perspective. stringified since we might want to use arbitrary info later, with a P prepended to
/// prevent ossification (api users love to make assumptions (e.g. parse stuff that looks like
/// numbers as numbers) about apis that aren't part of the spec
#[derive(Serialize, Deserialize, Debug, Clone, PartialEq, Eq, Hash)]

View file

@ -37,8 +37,8 @@ use tokio_util::sync::CancellationToken;
use tracing::{debug, info, trace, warn};
/// Check whether to save state to db every n sends if there's no failures (during failures state is
/// saved after every attempt) This determines the batch size for loop_batch. After a batch ends and
/// SAVE_STATE_EVERY_TIME has passed, the federation_queue_state is updated in the DB.
/// saved after every attempt). This determines the batch size for loop_batch. After a batch ends
/// and SAVE_STATE_EVERY_TIME has passed, the federation_queue_state is updated in the DB.
static CHECK_SAVE_STATE_EVERY_IT: i64 = 100;
/// Save state to db after this time has passed since the last state (so if the server crashes or is
/// SIGKILLed, less than X seconds of activities are resent)
@ -161,7 +161,9 @@ impl InstanceWorker {
id
} else {
// this is the initial creation (instance first seen) of the federation queue for this
// instance skip all past activities:
// instance
// skip all past activities:
self.state.last_successful_id = Some(latest_id);
// save here to ensure it's not read as 0 again later if no activities have happened
self.save_and_send_state(pool).await?;