2

假设我在 clojure 中制作了一个爬虫/刮板,我希望它定期运行(在一天中的预定义时间)。

我想用石英/石英岩来定义我的工作(至少这似乎是最强大的解决方案。)

现在,要使用 clojure 创建一个守护进程,我尝试了 lein-daemon 插件,但它似乎是一个非常冒险的尝试,因为该插件似乎有点错误(或者我犯了一些严重的错误)

我创建此服务的最佳方式是什么?我希望它能够在系统重新启动时自行重新启动,但我想将 clojure(石英石)用于我的工作(从数据库加载它们等)。

什么是创建长期运行的守护进程的健壮但笨拙的方法?

编辑:

部署环境类似于单个 VPS 或专用服务器。可能有十几个作业从某个数据存储加载它们的参数,每天运行 1 到 8 次(或者可能更多)。

4

1 回答 1

3

正确的过程很大程度上取决于您的环境。我为具有许多长期运行的 Clojure 进程的复杂 Web/移动基础设施开发部署系统。为此,我们使用Pallet 创建实例并检查并配置代码,然后我们有一个函数可以生成 init 脚本以在启动时启动服务。此过程适用于您需要在云提供商上进行可重复构建的环境,因此对于您的情况来说它可能过于繁重。

如果您正在寻找简单的重复性工作,您可能需要研究Immutant,它是Clojure 的应用服务器,对重复性工作有很好的支持。

于 2013-07-23T18:34:33.440 回答