Aller au contenu principal
Version: 20 R5 BETA

Using preemptive web processes

Le Web Server de 4D vous permet de tirer pleinement parti des ordinateurs multi-coeurs en utilisant des process Web préemptifs dans vos applications compilées. Vous pouvez configurer votre code lié au Web, y compris les balises 4D, les méthodes base Web ou les fonctions de classe REST de ORDA, afin qu'il s'exécute simultanément sur le plus grand nombre de coeurs possibles.

For in-depth information on preemptive process in 4D, please refer to the Preemptive 4D processes section in the 4D Language Reference.

Disponibilité du mode préemptif pour les pocess Web

Le tableau suivant permet d'indiquer si l'utilisation du mode préemptif pour les process Web est disponible dans le contexte d'exécution suivant :

4D ServerInterpreted (debugger attached)Interprété (non associé au débogueur)Compilé
Serveur RESTcoopératifpreemptivepreemptive
Serveur Webcoopératifcoopératifweb setting
Server Web Servicescoopératifcoopératifweb setting
4D distant/monoposteInterprétéCompilé
Serveur RESTcoopératifpreemptive
Serveur Webcoopératifweb setting
Server Web Servicescoopératifweb setting

Ecrire du code serveur Web thread-safe

Tout le code 4D exécuté par le serveur Web doit être thread-safe si vous souhaitez que les process Web soient lancés en mode préemptif. When the preemptive mode is enabled, the following parts of the application will be automatically evaluated by the 4D compiler:

Pour chacune de ces méthodes ou parties de code, le compilateur vérifiera si les règles thread-safe sont respectées, et retournera une erreur en cas de problème. For more information about thread-safety rules, please refer to the Writing a thread-safe method paragraph in the Processes chapter of the 4D Language Reference manual.

Code web 4D thread-safe

La plupart des commandes et fonctions 4D, des méthodes base et des URL 4D sont thread-safe et peuvent être utilisées en mode préemptif.

4D commands and database methods

All 4D web-related commands are thread-safe, i.e.:

  • all commands from the Web Server theme,
  • all commands from the HTTP Client theme.

The web-related database methods are thread-safe and can be used in preemptive mode (see above): On Web Authentication, On Web Connection, On REST Authentication...).

Bien sûr, le code exécuté par ces méthodes doit aussi être thread-safe.

URL Web Server

Les URLs Web Server ci-dessous sont thread-safe et peuvent être utilisées en mode préemptif :

  • 4daction/ (the called project method must also be thread-safe)
  • 4dcgi/ (the called database methods must also be thread-safe)
  • 4dwebtest/
  • 4dblank/
  • 4dstats/
  • 4dhtmlstats/
  • 4dcacheclear/
  • rest/
  • 4dimgfield/ (generated by PROCESS 4D TAGS for web request on picture fields)
  • 4dimg/ (generated by PROCESS 4D TAGS for web request on picture variables)

Preemptive web process icon

Dans l'Explorateur d'exécution et dans la fenêtre d'administration de 4D Server, une icone spécifique s'affiche pour les process Web préemptifs :

Type de processIcône
Méthode Web (process préemptif)