You have the full power of PostgreSQL at your disposal, so there are many ways you can effectively tackle this issue.
- Decrement priority of all tenants jobs by 1 each time their job is executed, or increment other tenants' priorities (more ops but better behavior)
- Maintain a separate tenant priority table and join it + use for ordering when fetching the next job
And so on