我是否能够使用mysql内置函数get_lock?
P粉875565683
P粉875565683 2023-09-15 21:20:11
0
1
571

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

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

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

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

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

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

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

P粉875565683
P粉875565683

全部回复(1)
P粉156532706

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

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

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!