2014-09-19 12 views
1

J'ai une seule application web dans clojure qui s'exécute sur Heroku, mais je veux créer des processus de travail. À l'heure actuelle, mon procfile dit ceci:Projet clojure pour Heroku: procfile et organisation

web: java $JVM_OPTS -cp target/myapp-standalone.jar clojure.main -m myapp.web 

Ai-je raison de supposer que je peux simplement créer un nouvel espace de noms « worker.clj » dans le projet de Clojure, et en modifiant la procfile à ce qui suit, que la nouvelle classe/processus démarrerait sur un travailleur dyno?

web: java $JVM_OPTS -cp target/myapp-standalone.jar clojure.main -m myapp.web 
worker: java $JVM_OPTS -cp target/myapp-standalone.jar clojure.main -m myapp.worker 

Est-ce la bonne approche?

Répondre

1

Oui, tant que vous avez une fonction -main dans votre nouvel espace de noms, cela fonctionnera.

+0

Il semble qu'une approche alternative serait d'avoir une application Heroku distincte pour chaque processus de travail, bien que je ne vois pas Heroku recommander cela n'importe où. Y at-il une raison de ne pas le faire si la base de code est vraiment séparée pour chaque processus? – pickwick