fix illegal values in redis jobs

1. populate_streams_get_audience

This tries to set status_reply_parent_privacy as None if there is no status.reply_parent, but None is not a valid value for privacy.
This doesn't appear to be  breaking anything but does result in a lot of error messages in the logs.
I have set this to equal the original status.privacy - this won't realy have any effect since it only happens when there is no parent,
however we could set this to "direct" if we want to be highly cautious.

2. rerank_user_task

Again, this doesn't seem to caused major issues, but is throwing errors if the user in question no longer exists for some reason.
This commit checks whether 'user' exists before attempting to rerank.
This commit is contained in:
Hugh Rundle 2023-08-19 08:34:03 +10:00
parent 53c8085207
commit 5ed1441ddb
No known key found for this signature in database
GPG key ID: A7E35779918253F9
2 changed files with 3 additions and 2 deletions

View file

@ -112,7 +112,7 @@ class ActivityStream(RedisStore):
trace.get_current_span().set_attribute("status_privacy", status.privacy)
trace.get_current_span().set_attribute(
"status_reply_parent_privacy",
status.reply_parent.privacy if status.reply_parent else None,
status.reply_parent.privacy if status.reply_parent else status.privacy,
)
# direct messages don't appear in feeds, direct comments/reviews/etc do
if status.privacy == "direct" and status.status_type == "Note":

View file

@ -254,7 +254,8 @@ def rerank_suggestions_task(user_id):
def rerank_user_task(user_id, update_only=False):
"""do the hard work in celery"""
user = models.User.objects.get(id=user_id)
suggested_users.rerank_obj(user, update_only=update_only)
if user:
suggested_users.rerank_obj(user, update_only=update_only)
@app.task(queue=SUGGESTED_USERS)