当前位置: 首页 > 面试题库 >

在Linux上从命令队列进行并行处理(bash,python,ruby等)

柴声
2023-03-14
问题内容

我有200个命令的列表/队列,它们需要在Linux服务器上的Shell中运行。

我只想一次最多运行10个进程(从队列中)。一些过程将花费几秒钟来完成,而其他过程将花费更长的时间。

当进程完成时,我希望从队列中“弹出”下一条命令并执行。

有没有人有代码来解决这个问题?

进一步阐述:

在某种队列中,有200项工作需要完成。我希望一次最多进行10项工作。当线程完成一项工作时,应向队列询问下一项工作。如果队列中没有其他工作,则该线程应该死亡。当所有线程都消亡时,这意味着所有工作都已完成。

我要解决的实际问题是imapsync用于将200个邮箱从旧邮件服务器同步到新邮件服务器。有些用户的邮箱很大,要花很长时间才能同步,另一些html" target="_blank">用户的邮箱很小,所以需要快速同步。


问题答案:

我想您可以使用make和make -j xx命令来做到这一点。

也许像这样的makefile

all : usera userb userc....

usera:
       imapsync usera
userb:
       imapsync userb
....

make -j 10 -f makefile



 类似资料:
  • 问题内容: 我需要从python运行此linux命令,并将输出分配给变量。 我试过使用pythons命令库来做到这一点。 但是a结束了。我得到的输出是: 但预期的输出是: 有人知道如何阻止输出中断吗?有人可以建议其他方法吗? 问题答案: 显然限制了其输出以适合终端的假定宽度。您可以使用环境变量或选项覆盖此宽度。 该模块已弃用。使用得到的输出,并在Python进行过滤。不要按照其他答案的建议使用,在

  • 问题内容: 我正在寻找一个Linux命令行工具来比较两个PDF文件并将差异保存到PDF输出文件中。该工具应在批处理过程中创建diff- pdf。PDF文件是施工计划,因此纯文本比较无效。 就像是: 我发现的大多数工具都将PDF转换为图像并进行比较,但只能使用GUI。 也欢迎任何其他解决方案。 问题答案: 使用(全能的)imagemagick和pdftk分两行完成: 选项-verbose和-debu

  • 问题内容: 我运行一个包含此行的python脚本 然后,我在服务器上运行相同的代码,并收到以下错误消息 因此,我要做的就是print bashCommand在运行之前,在终端中插入一个比命令更清晰的信息os.system()。 当然,我再次收到错误(由引起os.system(bashCommand)),但是在该错误出现之前,它会在终端中打印命令。然后我只是复制了输出,然后将复制粘贴到终端中,然后按

  • 问题内容: 我有一个非常简单的问题。我是Mac的新手,我正试图将Java项目移到新Mac上。该项目有一个Gradlew文件,我认为我可以从命令行运行以在任何计算机上构建和运行。当我从命令行(在gradlew文件的位置)执行gradlew时,它说未找到gradlew。我是否缺少有关如何从bash shell运行命令的内容? 问题答案: 您的gradlew目录未包含在PATH中,因此您必须指定grad

  • 问题内容: 我有一个bash脚本,如下所示: 但是处理每一行直到命令完成然后转移到下一行非常耗时,我想一次处理例如20行,然后当它们完成时再处理另外20行。 我曾考虑过将命令发送到后台并继续执行,但是这里有4000行,这意味着我将遇到性能问题,更不用说我应该同时启动多少个进程了,所以这不是一个好选择理念。 我现在正在考虑的一种解决方案是检查其中一个命令是否仍在运行,例如,在20行之后,我可以添加以

  • 问题内容: 我有一个bash脚本,可以通过命令行像这样运行: 我在调用某个php文件后尝试执行上述命令。 我现在所拥有的是: 但这是行不通的。我尝试过使用和太,但剧本从来没有得到执行。 但是,当我尝试运行它时,它确实起作用,并且是所有文件的列表。 我不确定这是由于我使用的VPS的限制还是问题出在其他地方? 问题答案: 您可能需要在调用脚本之前将chdir更改到正确的目录。这样,您可以在调用shel

  • 基本上,我在gitbash命令行中键入,然后返回一个空行,好像命令行正在思考。。。 我做了大量的研究,但似乎无法通过在命令行中键入python在GitBash上运行python。 我看到的问题是:Python在git bash的命令行中不起作用,有人建议键入: 进入命令行,它工作了!但是,我不想一直在命令行中输入整个命令。

  • 问题内容: 有没有办法从Python运行BASH内置命令? 我试过了: 及其许多变化。我想跑步还是。 问题答案: 我终于找到了可行的解决方案。 谢谢大家的投入。