如何使用Django在MySQL上使用跳过锁定执行SELECT FOR UPDATE

akh*_*il_ 5 mysql django pessimistic-locking

我有一个Django项目,该项目使用带有InnoDB存储的MySQL v5.5后端。 为了避免DB中的竞争条件更新,我使用select_for_update锁定行。现在,如果此锁定保持很长一段时间,则锁定行上的所有查询都将超时。 我想通过以下选项之一避免这种情况:

  1. 跳过被锁定的行,类似于SKIP LOCKED选项。
  2. 如果您要查询的某些行被锁定,则立即返回,类似于NOWAIToption。
  3. 减少特定查询的锁定等待超时时间。

如何使用Django ORM执行上述任何操作?