代码之家  ›  专栏  ›  技术社区  ›  pvpkiran

Postgresql LOCK TABLE命令等待NOWAIT

  •  1
  • pvpkiran  · 技术社区  · 6 年前


    我希望这个cron作业只执行一次。我知道有很多方法可以做到这一点。但我想用数据库表锁来实现。

    我使用的是Postgresql(10.4),这就是我的代码

    Statement statement = connection.createStatement();
    statement.execute("LOCK TABLE crontable NOWAIT");
    

    我所期望的是,当一个进程获得锁时,另一个进程将中止(根据文档) https://www.postgresql.org/docs/10/sql-lock.html

    但当前发生的情况是,其他进程等待第一个进程释放锁。

    我是不是漏了什么?

    0 回复  |  直到 6 年前