【发布时间】:2018-05-04 01:23:13
【问题描述】:
我看到过一些类似的问题,但没有什么非常具体的问题,而且作为一个新的 Clojure 开发人员并不确定其中任何一个是否是最佳实践。
基本上,我有一个应用程序,每隔几秒钟就需要访问一个数据库并遍历每个项目。然后,根据某些条件需要生成一个新线程并对项目执行一些工作,然后将其插入到单独的数据库中。
我的问题是在 clojure 中启动和运行这样的应用程序的最佳方式是什么,需要不断运行。我目前的想法是阻塞主线程,然后生成一个新线程,这将是我的主要循环,然后生成上面提到的其他线程。我不确定这是否是实现这一目标的最佳方式,或者我是否忽略了实现目标的更好方式。
【问题讨论】:
-
我认为您需要提供更多信息才能获得合理的答案。展示你正在尝试做的一个简单的例子。有许多不同的并发选项,从
futures(将处理作业)或clojure.async用于更复杂的消息传递。 -
直接从主循环跳到你的主循环,并为另一个线程使用
future。我看不出有什么问题。
标签: asynchronous concurrency clojure