From 9431cb09d72351f2805c79cbb71957a500c024e4 Mon Sep 17 00:00:00 2001 From: Thomas Sileo Date: Mon, 30 Jul 2018 10:06:44 +0200 Subject: [PATCH] Fix forwarding --- tasks.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/tasks.py b/tasks.py index 21b10d3..a62a1ae 100644 --- a/tasks.py +++ b/tasks.py @@ -114,7 +114,7 @@ def process_new_activity(self, iri: str) -> None: if should_forward: log.info(f"will forward {activity!r} to followers") - activity.forward(back.followers_as_recipients()) + forward_activity.delay(activity.id) if should_delete: log.info(f"will soft delete {activity!r}") @@ -367,6 +367,22 @@ def finish_post_to_outbox(self, iri: str) -> None: for recp in recipients: log.debug(f"posting to {recp}") post_to_remote_inbox.delay(payload, recp) + except Exception as err: + log.exception(f"failed to post to remote inbox for {iri}") + self.retry(exc=err, countdown=int(random.uniform(2, 4) ** self.request.retries)) + + +@app.task(bind=True, max_retries=12) # noqa:C901 +def forward_activity(self, iri: str) -> None: + try: + activity = ap.fetch_remote_activity(iri) + recipients = back.followers_as_recipients() + log.debug(f"Forwarding {activity!r} to {recipients}") + activity = ap.clean_activity(activity.to_dict()) + payload = json.dumps(activity) + for recp in recipients: + log.debug(f"forwarding {activity!r} to {recp}") + post_to_remote_inbox.delay(payload, recp) except Exception as err: log.exception(f"failed to cache attachments for {iri}") self.retry(exc=err, countdown=int(random.uniform(2, 4) ** self.request.retries))