Como obtenho um funcionário do gearman para aceitar argumentos como stdin?

2

Eu vi o método xargs de passar argumentos para o gearman, mas como faço para obter meu script para obter STDIN como a entrada para o meu operador gearman?

O caso de uso aqui é que eu tenho um monte de IDs que gostaria de simplesmente disparar como isso.

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

Se eu pudesse fazer isso, iterar em uma lista de números de ID seria realmente fácil.

    
por flickerfly 07.03.2017 / 00:01

1 resposta

0

Se o seu script já usa $ 1 como sua entrada e você simplesmente deseja definir o padrão para stdin se $ 1 não estiver definido, você pode definir sua variável dessa maneira.

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

Então, quando você iniciar o trabalhador, simplesmente faça

gearman -w -f job script.sh

Em seguida, para enviar uma tarefa para o funcionário que define var como 123456, simplesmente faça isso

gearman -f job 123456
    
por 07.03.2017 / 00:01