To start there’s this https://frappe.io/docs/user/en/guides/app-development/running-background-jobs
As well a search on ‘background’ plus ‘report’ ‘worker’ ‘scheduler’ will help inform you for eg Functions executed in background often gets stale document from frappe.get_doc/reload