Question

Je joue avec le didacticiel de programmation distribuée à partir de la version 5.4 documentation et avez rencontré un problème avec les noms de nœud.

Le nom par défaut de mon MacBook ( jamess-macbook ) ne fonctionne pas bien avec le système de dénomination des nœuds d'Erlang, en raison du tiret:

(salt@jamess-macbook)4> {my_process, pepper@jamess-macbook} ! start
** exception error: bad argument in an arithmetic expression
     in operator  -/2
        called as pepper@jamess - macbook

Je suis sûr qu'il existe un moyen simple de contourner ce problème, à moins de renommer toutes les machines sur lesquelles je veux utiliser Erlang, mais je ne le vois pas dans la documentation.

Des suggestions?

Était-ce utile?

La solution

Vous devez juste citer l'atome correctement. 'pepper @ jamess-macbook' (avec les guillemets simples) est le nom du noeud.

  

Un atome doit être inclus dans un seul   quotes (') si elle ne commence pas par un   lettre minuscule ou si elle contient   autres caractères que alphanumériques   caractères, trait de soulignement (_) ou @.   - Manuel de référence d'Erlang

L'utilisation de noms de nœuds courts ( -sname ) a d'autres conséquences (interopérabilité limitée avec les nœuds de noms de nœuds longs, ne charge pas les informations DNS dans inet_db, etc.).

Autres conseils

Démarrez l'interpréteur Erlang avec:

$ erl -sname node_name

nom_noeud est le nom que vous souhaitez utiliser pour faire référence à la machine.

Vous pouvez même simuler un système distribué sur une seule machine en démarrant plusieurs instances de l'interpréteur, chacune avec un nom de noeud différent.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top