(或者更多)Clojure后台进程



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

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

现在,为了用clojure创建一个守护进程,我尝试了lein守护进程插件,但这似乎是一个非常危险的地方,因为该插件似乎有点bug(或者我犯了一些严重错误)

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

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

编辑:

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

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

如果您正在寻找简单的重复性作业,您可能需要了解Immutat,它是Clojure的应用程序服务器,对重复性作业有很好的支持。

最新更新