Métodos de verniz de curto-circuito sem pular métodos incorporados

1

Enquanto configuro o Varnish 4, estou interessado em curto-circuito dentro de vcl_recv , mas eu não quero pular a lógica VCL do builtin.vcl (née default.vcl) . Por exemplo, dado este pseudocódigo VCL:

sub vcl_recv {
    if (somecondition1) {
        set some_thing;
        return (hash); # Return from cache if present, or fetch from the backend
    }

    if (somecondition2) {
        set some_other_thing;
        return (hash); # Return from cache if present, or fetch from the backend
    }

    // ...

    return (pass); # Skip cache, fetch from the backend
}

Pergunta 1

Se eu estiver chamando return em todos os caminhos de código possíveis, então a lógica interna será ignorado certo?

Pergunta 2

Existe uma maneira de formatar código semelhante ao acima, mas sem pular a lógica builtin.vcl? A única maneira que posso ver é combinar meus condicionais, booleanos ! deles e mover o return (pass); dentro do gigante if .

    
por Collin Allen 12.03.2015 / 05:42

1 resposta

1

1) Sim

2) O ponto inteiro de um retorno é que você pula partes do código, que você o interrompe executando por código desnecessário (hashing, passing, missing). Se você precisar executá-lo, ou a) Copie o código que você precisa executar antes do retorno ou do código b) Use um invólucro massivo se.

Pessoalmente, eu tenho a tendência de duplicar e substituir todo o vcl embutido por tudo, menos o mais básico dos sites, eu posso obter taxas de sucesso realmente altas (98% +).

    
por 31.03.2015 / 20:45

Tags