我有一个要执行的 MySQL 任务表,每一行都有一个任务的参数。
有许多工作应用程序(可能在不同的机器上)循环执行任务。
这些应用程序使用 MySQL 的本机 C API 访问数据库。
为了拥有一项任务,应用程序会执行以下操作:
生成一个全局唯一的 id(为简单起见,假设它是一个数字)
UPDATE tasks
SET guid = %d
WHERE guid = 0 LIMIT 1
SELECT params
FROM tasks
WHERE guid = %d
如果最后一个查询返回一行,我们拥有它并拥有要运行的参数
有没有办法在对服务器的一次调用中实现相同的效果(即“拥有”一行并获取其参数)?