如何让 bash gearman 工作人员将参数作为标准输入?

如何让 bash gearman 工作人员将参数作为标准输入?

我已经看到了将参数传递给 gearman 的 xargs 方法,但是如何让我的脚本将 STDIN 作为 gearman 工作人员的输入呢?

这里的用例是我有一堆 ID,我想像这样简单地触发它们。

gearman -f job 123456
gearman -f job 123457
gearman -f job 123458
gearman -f job 123459
gearman -f job 123460

如果我能做到这一点,那么迭代 id 编号列表将非常容易。

答案1

如果您的脚本已使用 $1 作为输入,并且您只想将其设置为默认为 stdin(如果未设置 $1),则可以通过这种方式设置变量。

# Set id to first argument or stdin if that is blank
id=${1:-$(cat -)}

然后当你启动时,工人只需做

gearman -w -f job script.sh

然后,要将任务发送给将 var 设置为 123456 的工作人员,只需执行以下操作

gearman -f job 123456

相关内容