<div dir="ltr"><div>Confirmo o que o Jorge disse, <br></div><div>falei com um dos core developers de QGIS server e disse que está disponível para implementar uma solução, caso alguém ou alguma entidade esteja interessado/a.</div><div><br></div><div>-- G --</div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 16, 2020 at 10:41 PM Jorge Gustavo Rocha <<a href="mailto:jgr@geomaster.pt">jgr@geomaster.pt</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p>Olá Duarte,</p>
    <p>Os projetos em base de dados têm que ter um tratamento
      ligeiramente diferente. Porquê? Porque não há o mecanismo de
      inotify quando um projeto é alterado. Ou seja, o QGIS Server sabe,
      para os projetos em ficheiro, quando o mesmo é alterado. Nestes
      casos, o QGIS Server pode reler o projeto e atualizar a cache do
      projeto.</p>
    <p>Com os projetos em base de dados o QGIS Server não é notificado
      quando são alterados. Por isso, uma forma de o QGIS Server reler o
      projeto é, como fizeste, fazer o restart ao Apache manualmente.<br>
    </p>
    <p>Eu sou fã de guardar os projetos em base de dados, em ambientes
      empresariais/multi-utilizador. Nestes casos, o que faço, é por um
      trigger na(s) tabela(s) dos projetos QGIS que me envia uma
      notificação sempre que um projeto é criado, alterado ou removido.
      Em Python, recebo essa notificação e faço as ações decorrentes de
      cada uma destas coisas.</p>
    <p>O trigger em si, é simples e pode ser algo do género:</p>
    <p>create trigger project_change_qgis_projects <br>
          after insert or delete or update on public.qgis_projects <br>
          for each row <br>
              execute procedure project_change();</p>
    <p>A função que é executado é que envia a notificação:</p>
    <p>CREATE OR REPLACE FUNCTION public.project_change() RETURNS
      trigger LANGUAGE plpgsql AS $$<br>
      declare<br>
          pname varchar;<br>
          rec record;<br>
      begin<br>
          if (TG_OP = 'DELETE') then<br>
              pname = <a href="http://old.name" target="_blank">old.name</a>;<br>
              rec = old;<br>
          else<br>
              pname = <a href="http://new.name" target="_blank">new.name</a>;<br>
              rec = new;<br>
          end if;<br>
          perform pg_notify('qgis', FORMAT('{ "project": "%s",
      "operation": "%s", "database": "%s", "schema": "%s", "username":
      "%s", "when": "%s" }', pname, TG_OP, current_database(),
      current_schema(), current_user, now() ) );<br>
          return rec;<br>
      end<br>
      $$;</p>
    <p>Depois, crio um processo que escuta as notificações 'qgis' e
      recebe os parâmetros em JSON. No mínimo podes fazer um reload do
      Apache e assim garantes que o projeto é relido pelo QGIS Server
      sempre que é alterado.<br>
    </p>
    <p>Espero que ajude.</p>
    <p>Abraço e bom trabalho,</p>
    <p>Jorge Gustavo<br>
    </p>
    <div>On 16/06/20 17:45, duartecarreira
      wrote:<br>
    </div>
    <blockquote type="cite">
      <pre>Olá mais uma vez pessoal!

Ando aqui às voltas com o qgis server e estou muito bem impressionado!!

A dúvida é: tendo um projecto em pgsql servido pelo qgis server, estou a ver
sempre o mesmo mapa, mesmo quando altero o projecto e volto a gravar.

Parece haver aqui uma cache no meio... para ver o mapa uso o browser
diretamente, com um url getmap construído à mão. A cache do browser está
off. É enviado o header Cache-Control: no-cache.

Sabem o que se pode estar a passar? O cap doc tb não é actualizado... Posso
adicionar um layer novo, gravar o projecto, e o cap docs não o vai incluir
num request novo.

Se fizer reload ao apache (estou a usar mod_fcgi), já aparece o projecto
correctamente...

Eu li algures que o qgis ou o qgis server fazem cache do cap doc. Se o qgis
server faz isto tb, não vejo como possa ultrapassar este problema... a não
ser desistir de projectos em bd.


Abr,
Duarte



--
Sent from: <a href="http://osgeo-org.1560.x6.nabble.com/QGIS-pt-f5128248.html" target="_blank">http://osgeo-org.1560.x6.nabble.com/QGIS-pt-f5128248.html</a>
_______________________________________________
QGIS-pt mailing list
<a href="mailto:QGIS-pt@lists.osgeo.org" target="_blank">QGIS-pt@lists.osgeo.org</a>
<a href="https://lists.osgeo.org/mailman/listinfo/qgis-pt" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-pt</a>
</pre>
    </blockquote>
    <div>-- <br>
      
      
      <table style="width:525px;font-size:11pt;font-family:Arial,sans-serif" cellspacing="0" cellpadding="0">
        <tbody>
          <tr>
            <td style="text-align:center;font-size:10pt;font-family:Arial,sans-serif;border-right:1px solid rgb(251,99,3);width:125px;padding-right:10px;vertical-align:top" rowspan="6" width="125" valign="top"> <a href="https://www.geomaster.pt" target="_blank"><img alt="Logo" style="width: 105px; height: auto; border: 0px none;" width="85" border="0"></a> </td>
            <td style="padding-left:10px">
              <table cellspacing="0" cellpadding="0">
                <tbody>
                  <tr>
                    <td style="font-size:10pt;color:rgb(0,121,172);font-family:Arial,sans-serif;width:400px;padding-bottom:5px;padding-left:10px;vertical-align:top" valign="top"> <strong><span style="font-size:14pt;font-family:Arial,sans-serif;color:rgb(251,99,3)">Geomaster</span></strong><br>
                      <strong><span style="font-size:11pt;font-family:Arial,sans-serif;color:black">Jorge Gustavo
                          Rocha</span></strong> <span style="font-family:Arial,sans-serif;font-size:11pt;color:rgb(0,0,0)"><span style="padding-right:5px;padding-left:5px">
                          | </span>Software Engineer</span> </td>
                  </tr>
                  <tr>
                    <td style="font-size:10pt;color:rgb(68,68,68);font-family:Arial,sans-serif;padding-bottom:5px;padding-top:5px;padding-left:10px;vertical-align:top;line-height:17px" valign="top"> <span><span style="color:rgb(251,99,3)"><strong>e:</strong></span><span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(0,0,0)"> <a href="mailto:jgr@geomaster.pt" target="_blank">jgr@geomaster.pt</a></span></span>
                      <span><span style="padding-left:5px;padding-right:5px"> | </span><span style="color:rgb(251,99,3)"><strong>m:</strong></span><span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(0,0,0)"> +351 910 333 888<br>
                        </span></span> <span><span style="color:rgb(251,99,3)"><strong>g:</strong></span><span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(0,0,0)"> 41.54094,-8.40490</span></span>
                      <span><span style="padding-left:7px;padding-right:5px"> | </span><span style="color:rgb(251,99,3)"><strong>v: </strong></span><span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(0,0,0);padding-left:7px">
                          510 906 109<br>
                        </span></span> <span> <span style="color:rgb(251,99,3)"><strong>a: </strong></span> </span>
                      <span> <span style="font-size:10pt;font-family:Arial,sans-serif;color:rgb(0,0,0)"><span> </span>Rua
                          António Cândido Pinto, 67, 4715-400 Braga<br>
                        </span></span> </td>
                  </tr>
                </tbody>
              </table>
            </td>
          </tr>
        </tbody>
      </table>
    </div>
  </div>

_______________________________________________<br>
QGIS-pt mailing list<br>
<a href="mailto:QGIS-pt@lists.osgeo.org" target="_blank">QGIS-pt@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/qgis-pt" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/qgis-pt</a><br>
</blockquote></div>