我已经看到了将参数传递给 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