我有一个很长的mysql队列。我有1个工作者脚本处理每个队列。通过长时间运行多个工人
但是当这个工作者正在运行时,数据库可能会被更新或者得到新的行插入。
示例工人脚本
get_current_queue = SELECT from queue...
while(get_current_queue) {
update_current_row_from_queue "processing"
//some cpu intensive processing here that takes varying amount of time.
}
的问题是,工人脚本需要不同的时间量取决于在给定时刻的队列有多长,并且每个CPU的处理花费的时间(视频转换为前)。
因此,当我在第一个工作人员运行时运行另一个工作人员脚本时,第一个工作人员在队列数据库中尚未标记为“处理”的队列将落入第二个工作人员待办事项列表。
我不知道如何解决这个问题。
当一个工人运行时,我需要一些方法来标记这个批处理,所以只有这个工人会运行它。
并且在运行时,插入新行后,如果我选择启动另一个工人,它可以工作。
好吧,你是指每行的工人?在任何特定时间运行的员工的最高门槛是多少?如果有很多工人每人只运行一行,那么效率会不会更低?我想听听更多关于这个细节的信息,这很有趣。 – ggggggggg