Python中文
首页
教程
问答
标签
搜索
登录
注册
Django、innodb和rowlevel锁定
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个包含要解析的数据的表和一个worker,它从中获取几个记录,对其进行处理并保存回来。它还将标志设置为“parsed”。在</p> <p>现在我要运行worker的几个实例,并确保两个worker不会同时选择同一行进行处理。所以我需要阻止它。在</p> <p>我使用的是django,从MySQL手册中读到的内容,可以获得一个行级锁,但我找不到任何正确执行此操作的示例。唯一一个说它非常慢:)<a href="http://djangosnippets.org/snippets/2039/" rel="nofollow">http://djangosnippets.org/snippets/2039/</a></p> <p>我可以有另一个字段,名为“lock until”,它是一个时间戳,在worker选择了一行之后更新为now+X分钟。这将缩短锁定时间(选择后立即更新),并阻止另一个工作线程选择该行,该工作进程将检查该行是否未“锁定”,但在选择和更新之间仍然存在锁定问题。在</p> <p>谢谢! 伊恩</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>有了锁,第二个工人就会被卡住,等待锁释放。在</p> <p>也许您可以在开始处理之前将条目标记为“workstartedonthissentry at[timestamp]”,并让后续的工作人员忽略这些行。然后,您可以有一个cron作业或类似的“释放”行,这些行的时间戳早于某个阈值,但还没有标记为“done”(表示工作线程死了或发生了其他错误)</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
VirtualEnvRapper错误:路径python2(来自python=python2)不存在
6 回答
virtualenvs上的pyinstaller,没有名为导入错误的模块
7 回答
virtualenvs是否可以退回到用户包而不是系统包?
5 回答
virtualenvwrapper CentOS7
10 回答
virtualenvwrapper IOError:[Errno 13]权限被拒绝
5 回答
virtualenvwrapper mkproject和shell在windows中的启动问题?
10 回答
virtualenvwrapper mkvirtualenv不工作但没有错误
4 回答
Virtualenvwrapper python bash
4 回答
virtualenvwrapper:“workon”何时更改到项目目录?
8 回答
virtualenvwrapper:mkvirtualenv可以工作,但是rmvirtualenv返回bash:没有这样的文件或目录
6 回答
virtualenvwrapper:virtualenv信息存储在哪里?
2 回答
virtualenvwrapper:命令“python设置.pyegg_info“失败,错误代码为1
10 回答
virtualenvwrapper:如何将mkvirtualenv的默认Python版本/路径更改为ins
3 回答
Virtualenvwrapper:模块“pkg_resources”没有属性“iter_entry_points”
2 回答
Virtualenvwrapper:没有名为virtualenvwrapp的模块
8 回答
Virtualenvwrapper.bash_profi的正确设置
2 回答
Virtualenvwrapper.hook:权限被拒绝
9 回答
virtualenvwrapper.sh:fork:资源暂时不可用Python/Djang
7 回答
Virtualenvwrapper.shlssitepackages命令不工作
4 回答
Virtualenvwrapper.sh函数在bash sh中不可用
7 回答