<div dir="ltr">Hi,<div><br></div><div>You can purge then set the method to GET then restart. Would that work for you?</div><div><br></div><div>Other way is to use req.hash_always_miss that will only revalidate if we are able to fetch a new object.</div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>-- <br></div>Guillaume Quintard<br></div></div></div>
<br><div class="gmail_quote">On Sat, Apr 7, 2018 at 12:10 PM, Danila Vershinin <span dir="ltr"><<a href="mailto:ciapnz@gmail.com" target="_blank">ciapnz@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space">Hi,<br><div><br></div><div>What I work with:</div><div><br></div><div>* Grace mode configured to be 60 seconds when backend is healthy</div><div>* Using softpurge module to adjust TTL to 0 upon PURGE.</div><div><br></div><div>The whole idea is increasing chances that visitors will get cached page after cache was PURGEd for a page.</div><div><br></div><div>Standard piece:</div><div><pre style="background-color:rgb(255,255,255);font-family:Monaco;font-size:8.3pt">sub vcl_hit {<br>    if (obj.ttl >= 0s) {<br>        # normal hit<br>        return (deliver);<br>    }<br><br>    if (std.healthy(req.backend_hint)<wbr>) {<br>        # Backend is healthy. Limit age to 60s.<br>        if (obj.ttl + 60s > 0s) {<br>            set req.http.grace = "normal(limited)";<br>            return (deliver);<br>        } else {<br>            return(fetch);<br>        }<br>    } else {<br>        # ...<br>    }<br>}</pre><div>And use of softpurge:</div></div><div><br></div><div><pre style="background-color:rgb(255,255,255);font-family:Monaco;font-size:8.3pt">sub vcl_miss {<br>    if (req.method == "PURGE") {<br>        softpurge.softpurge();<br>        return (synth(200, "Successful softpurge"));<br>    }<br>}<br><br>sub vcl_hit {<br>    if (req.method == "PURGE") {<br>        softpurge.softpurge();<br>        return (synth(200, "Successful softpurge"));<br>    }<br>}</pre><div><br></div></div><div><br></div><div>Current behaviour:</div><div><br></div><div>* send PURGE for cached page</div><div>* Visitor goes to the page within 60 seconds and sees a stale cached page (triggering background refresh)</div><div>* Further visits to the page will show refreshed page</div><div><br></div><div>What I’m looking for:</div><div><br></div><div>Trigger the background refresh right after PURGE while still leveraging grace mode :) That is, serve stale cache for only as long as it takes to actually generate the new page, and not wait for 60 seconds:</div><div><br></div><div>* upon PURGE: set TTL to 0 (softpurge) + trigger background page request (possible?)</div><div>* serve stale cache only while the page is generated</div><div><br></div><div>I could have adjusted the “healthy backend grace period” to lower than 60s, but I’m basically checking to see if it’s possible to refresh “nearly” immediately in this kind of setup.</div><div><br></div><div>Hope I made any sense :) </div><div><br><div>
<div style="word-wrap:break-word"><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">Best Regards,</div><div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">Danila</div></div>
</div>

<br></div></div><br>______________________________<wbr>_________________<br>
varnish-misc mailing list<br>
<a href="mailto:varnish-misc@varnish-cache.org">varnish-misc@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" rel="noreferrer" target="_blank">https://www.varnish-cache.org/<wbr>lists/mailman/listinfo/<wbr>varnish-misc</a><br></blockquote></div><br></div>