[QGIS-pt] qgis server e projectos no pgsql - cache?

Giovanni Manghi giovanni.manghi at gmail.com
Wed Jun 17 02:22:14 PDT 2020


Confirmo o que o Jorge disse,
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.

-- G --



On Tue, Jun 16, 2020 at 10:41 PM Jorge Gustavo Rocha <jgr at geomaster.pt>
wrote:

> Olá Duarte,
>
> 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.
>
> 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.
>
> 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.
>
> O trigger em si, é simples e pode ser algo do género:
>
> create trigger project_change_qgis_projects
>     after insert or delete or update on public.qgis_projects
>     for each row
>         execute procedure project_change();
>
> A função que é executado é que envia a notificação:
>
> CREATE OR REPLACE FUNCTION public.project_change() RETURNS trigger
> LANGUAGE plpgsql AS $$
> declare
>     pname varchar;
>     rec record;
> begin
>     if (TG_OP = 'DELETE') then
>         pname = old.name;
>         rec = old;
>     else
>         pname = new.name;
>         rec = new;
>     end if;
>     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() ) );
>     return rec;
> end
> $$;
>
> 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.
>
> Espero que ajude.
>
> Abraço e bom trabalho,
>
> Jorge Gustavo
> On 16/06/20 17:45, duartecarreira wrote:
>
> 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: http://osgeo-org.1560.x6.nabble.com/QGIS-pt-f5128248.html
> _______________________________________________
> QGIS-pt mailing listQGIS-pt at lists.osgeo.orghttps://lists.osgeo.org/mailman/listinfo/qgis-pt
>
> --
> [image: Logo] <https://www.geomaster.pt>
> *Geomaster*
> *Jorge Gustavo Rocha* | Software Engineer
> *e:* jgr at geomaster.pt | *m:* +351 910 333 888
> *g:* 41.54094,-8.40490 | *v: * 510 906 109
> *a: * Rua António Cândido Pinto, 67, 4715-400 Braga
> _______________________________________________
> QGIS-pt mailing list
> QGIS-pt at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/qgis-pt
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-pt/attachments/20200617/35ff515e/attachment-0001.html>


More information about the QGIS-pt mailing list