搜索

首页  >  问答  >  正文

我是否能够使用mysql内置函数get_lock?

外面有一个批处理作业。而且有多台服务器可以处理该作业。 我只希望在特定时间内,多台服务器中的一台服务器获取并处理该作业。

为了实现这个目的,在调查全局锁机制时,我发现了mysql的get_lock函数。

另外,由于已经依赖于mysql,我认为可以使用这个函数。

然而,让人怀疑的是,在寻找全局锁机制时,大多数都使用redis等,很难找到使用get_lock的案例。

所以我怀疑mysql的get_lock是否有任何缺点。

我目前的情况是已经在使用mysql,但没有使用redis。

那么,我可以使用mysql的get_lock进行全局锁定吗? 或者mysql的get_lock有什么缺点吗?

P粉875565683P粉875565683440 天前688

全部回复(1)我来回复

  • P粉156532706

    P粉1565327062023-09-16 12:58:12

    已经投票关闭了这个问题,但是一些建议可能会有帮助。

    据我了解,您有几台处理相同数据集的机器 - 您希望确保数据项的独占性。您似乎正在考虑一种咨询锁定机制,即数据使用者需要寻找锁定然后在使用数据之前创建它们。咨询锁定应该只作为最后的选择使用:

    • 数据客户端需要明确选择加入锁定机制 - 随着系统变得越来越复杂,越来越有可能有人编写一些代码,未能像其他所有东西一样使用锁定机制。然后就会出现问题
    • 咨询锁定导致状态被替代 - 锁定状态保存在与需要锁定的操作不同的位置。您现在处于CAP定理的领域

    请尝试重新发布带有数据接收器和数据源以及可用资源的详细信息,而不是询问是否适合一个未定义的问题的解决方案。

    回复
    0
  • 取消回复