我有一个包含 200 个命令的列表/队列,我需要在 Linux 服务器上的 shell 中运行这些命令。
我只想一次最多运行 10 个进程(从队列中)。有些过程需要几秒钟才能完成,而其他过程则需要更长的时间。
当一个进程完成时,我希望下一个命令从队列中“弹出”并执行。
有没有人有代码来解决这个问题?
进一步阐述:
在某种队列中,有 200 件工作需要完成。我希望一次最多进行 10 件工作。当一个线程完成一项工作时,它应该向队列询问下一项工作。如果队列中没有更多的工作,线程应该死掉。当所有线程都死掉时,这意味着所有工作都已完成。
我试图解决的实际问题是使用imapsync
将 200 个邮箱从旧邮件服务器同步到新邮件服务器。有些用户的邮箱很大,需要很长时间才能同步,有些用户的邮箱很小,同步速度很快。