Enabling Table Portioning in the Datastore (PostgreSQL)

We are using a production environment with 12k running jobs and about 30k queued jobs (at any given time).
We keep getting into a situation where autovacuum or VACUUM acquires ShareUpdateExclusiveLock and VACUUM FULL acquires an AcessExclusiveLock.
And that is causing PSB to slowdown and sometimes even hang.

We are looking into an option of partition pbs.job into several partitions, perhaps based on Date or ID
The idea is to break up the indexing across multiple partitions so the locking only happens on a partition, have anyone tried it before? are there any concerns with portioning pbs.job?