Saltar para o conteúdo principal
Versão: 19

Utilizar processos web preemptivos

O servidor Web de 4D permite que você aproveite ao máximo vários computadores centrais usando processos web preemptivos em suas aplicações compilados. Você pode configurar seu código relacionado à web, incluindo etiquetas 4D e métodos de banco de dados web, para executar simultaneamente em tantos núcleos quanto possível.

Para informações aprofundadas sobre o processo preventivo em 4D, por favor consulte Processos 4D preventivos seção na referência de linguagem4D.

Disponibilidade do modo preemptivo para os processos web

A tabela a seguir indica se o modo preventivo está utilizado ou está disponível, dependendo do contexto de execução:

4D ServerInterpretado, projeto (cliente conectado localmente)Interpretado, projeto (nenhum cliente ligado localmente) ou binárioCompilado
Servidor RESTcooperativopreemptivepreemptive
Servidor Webcooperativocooperativoparâmetro web
Servidor Web Servicescooperativocooperativoparâmetro web
Legado RESTcooperativoparâmetro webparâmetro web
4D remoto/usuário únicoInterpretadoCompilado
Servidor RESTcooperativopreemptive
Servidor Webcooperativoparâmetro web
Servidor Web Servicescooperativoparâmetro web
Legado RESTcooperativoparâmetro web

Escrever código servidor Web hilo seguro

Todo o código 4D executado pelo servidor deve ser hilo seguro se você quiser que seus processos web sejam executados em modo preventivo. Quando a opção Usar processos preventivos é marcada na caixa de diálogo Propriedades, as seguintes partes da aplicação serão automaticamente avaliadas pelo compilador 4D:

  • Todos os métodos bases relacionados com a Web:

  • O método projeto compiler_web (independentemente da sua propriedade "Modo de execução");

  • Basicamente, qualquer código processado pelo comando PROCESS 4D TAGS no contexto web, por exemplo, através de páginas .shtml.

  • Qualquer método do projeto com o atributo "Disponível através de etiquetas 4D e URLs (4DACTION, etc.)"

  • Triggers para as tabelas com o atributo "Expor como recurso REST"

  • Funções de classe de modelo de dados ORDA chamadas via REST

  • Métodos projeto com a propriedade "Servidor REST" marcada (chamadas REST herdadas)

Para cada um desses métodos e partes de código, o compilador irá verificar se as regras de segurança de threads são respeitadas, e retornará erros em caso de problemas. Para mais informações sobre as regras hilo seguro, por favor, consulte o parágrafo que escreve um método hilo seguro no capítulo Processos do manual de linguagem 4D.

Código web 4D hilo seguro

A maioria dos comandos 4D relacionados à Web e funções, métodos de banco de dados e URLs são hilo seguro e podem ser usados em modo preventivo.

Comandos 4D e métodos banco de dados

Todos os comandos 4D relacionados à Web são hilo seguro i.e.:

  • todos os comandos do tema Servidor Web,
  • todos os comandos do tema Cliente HTTP.

Os métodos banco de dados relacionados à web são hilo seguro e podem ser usados em modo preventivo (veja abaixo): On Web Authentication, On Web Connection, On REST Authentication...).

Obviamente, o código executado por esses métodos também deve ser hilo seguro.

URLs do servidor Web

As seguintes URLs Web Server 4D são hilo seguro e podem ser usadas em modo preventivo:

  • 4daction/ (o método chamado projeto também deve ser hilo seguro)
  • 4dcgi/ (os métodos banco de dados chamados também devem ser hilo seguro)
  • 4dwebtest/
  • 4dblank/
  • 4dstats/
  • 4dhtmlstats/
  • 4dcacheclear/
  • rest/
  • 4dimgfield/ (gerado por PROCESS 4D TAGS para solicitação na web nos campos imagem)
  • 4dimg/ (gerada por PROCESS 4D TAGS para solicitações web em variáveis imagem)

Ícone de processo web preemptivo

O Explorador de execução e a janela de administração de 4D Server mostram ícones específicos para os processos preemptivos:

Tipo de processoÍcone
Método web preventivo