Hello @Matthew Bellringer
You can run background tasks with WebJobs in Azure App Service Windows.
WebJobs is a feature of Azure App Service that enables you to run a program or script in the same instance as a web app, API app, or mobile app. There is no additional cost to use WebJobs.
You can use the Azure WebJobs SDK with WebJobs to simplify many programming tasks. WebJobs is not yet supported for App Service on Linux.
There are several WebJob types:
- Continuous - Starts immediately when the WebJob is created. To keep the job from ending, the program or script typically does its work inside an endless loop. If the job does end, you can restart it. Typically used with WebJobs SDK.
- Triggered - Starts only when triggered manually or on a schedule.
The following file types are supported:
- .cmd, .bat, .exe (using Windows cmd)
- .ps1 (using PowerShell)
- .sh (using Bash)
- .php (using PHP)
- .py (using Python)
- .js (using Node.js)
- .jar (using Java)
https://learn.microsoft.com/en-us/azure/app-service/webjobs-create
If you are going to run background tasks using Django Python in Linux or Docker I would recommend Azure Function instead
https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference-python?tabs=azurecli-linux%2Capplication-level
You are correct @Matthew Bellringer in that WebJobs is only available on Windows based plans, however you can still run python files as @Andriy Bilous pointed out above. However, this would mean having two separate app service plans.
The best course of action would be to use Azure Functions as you've determined on a consumption plan. I'm not too familiar with Wagtail but it does appear it is middleware for your django app. You could look at proxying and surfacing your manage.py to an HTTP endpoint from a timer-based Azure Function.