我在配置文件中有一些配置數據,當應用程序啓動時我從磁盤中讀取數據。我需要將該配置數據提供給應用程序中的其他功能/模塊。我開始研究ets/mnesia以便在啓動時存儲數據,以便在所有進程之間共享數據,但接下來我內心的聲音告誡我必須有一種更實用的erlang-y方式來執行此操作。到目前爲止,我提出的唯一替代方法是建立一個模塊,該模塊具有一個在啓動時讀取數據並響應諸如{Key,From}之類的消息並由From發出響應的actor循環。 {OK,值}。於是,我放棄了,決定問... 謝謝, --tim在模塊之間共享[config]數據,功能
4
A
回答
4
如果你需要的只是一些配置參數,你可能要包括他們作爲環境變量(二郎計算)之一你的Erlang應用程序。做到這一點的方法是將其包含到。應用程序(或.app.src)您的應用程序的文件,在env
元組:
喜歡的東西:
{application, ch_app,
[{description, "Channel allocator"},
{vsn, "1"},
{modules, [ch_app, ch_sup, ch3]},
{registered, [ch3]},
{applications, [kernel, stdlib, sasl]},
{mod, {ch_app,[]}},
{env, [{file, "/usr/local/log"}]}
]}.
來源:http://www.erlang.org/doc/design_principles/applications.html
正如你所看到的,file
是配置變量。 您可以通過訪問該變量:
application:get_env(ch_app, file).
如果你需要的是更復雜的東西,你可能希望創建一個gen_server進程,回答所有的配置請求(getter和setter方法)。
0
更不用說任何簡單的自行編寫的解決方案都需要在啓動主管理員之前讀取配置文件,因爲您可能需要這些變量。只是一個想法,但我在自己的代碼中遇到了同樣的問題。
相關問題
- 1. 在appengine模塊之間共享數據
- 2. 在apache模塊之間共享數據
- 3. 在es6模塊之間共享數據
- 4. 如何在兩個模塊之間共享數據庫模型?
- 5. 在模塊之間共享內存
- 6. Web2py - 在模塊之間共享列表
- 7. 在模塊之間共享互斥體
- 8. joomla在模塊之間共享變量
- 9. 在appengine模塊之間共享python包
- 10. 塊之間共享lua數據?
- 11. 在SpecFlow中,如何在步驟/功能之間共享數據?
- 12. ZF2 - 模塊之間的共享模型
- 13. 模塊之間共享ZF2模型
- 14. 在NodeJS中的模塊之間共享數據
- 15. 如何在AngularJS的兩個模塊之間共享數據?
- 16. Angularjs在兩個模塊之間共享數據
- 17. 在兩個模塊之間共享數據MeanJs不工作
- 18. 如何在多個App Engine模塊之間共享元數據?
- 19. Gradle和Maven之間的共享模塊
- 20. Intellij共享項目之間的模塊
- 21. 在數據庫之間共享數據
- 22. 功能之間的共享連接
- 23. jQuery - 功能之間共享變量
- 24. ViewControllers之間共享數據
- 25. 共享數據JVM之間
- 26. 改變根模塊之間共享數據
- 27. Angular 5:組件之間共享數據的服務(跨模塊)?
- 28. Python行爲功能之間共享數據
- 29. 如何在Django模型實例之間共享公共數據?
- 30. 在PRISM模塊之間共享公共資源(wpf)
輝煌,感謝羅伯託,我現在有一個簡單的gen_server現在回答我的配置調用感謝一個簡單的教程[1],它足夠簡化,甚至我可以明白... [1] - http:/ /20bits.com/articles/erlang-a-generic-server-tutorial/ – Tim 2010-03-24 16:45:32