让我说我在clojure中制作一个爬虫/刮刀,我希望它定期运行(在一天的预定时间)。
我想用石英/石英岩定义我的工作(至少这似乎是最强大的解决方案。)
现在,为了使用clojure创建一个守护进程,我尝试了lein-daemon插件,但它似乎是一个非常危险的尝试,因为插件似乎不仅有点儿错误(或者我犯了一些重大错误)< / p>
创建此服务的最佳方式是什么? 我希望它能够在系统重启时重新启动,但我想使用clojure(quartzite)来完成我的工作(从数据库中加载它们等)。
创建一个长期运行的守护程序进程的强大功能 - 但是clojury - 是什么?
编辑:
部署环境将类似于单个VPS或专用服务器。 可能有十几个作业从一些数据存储加载它们的参数,每天运行1-8次(或者更多)。
答案 0 :(得分:2)
正确的过程在很大程度上取决于您的环境。我使用许多长期运行的Clojure流程来处理复杂Web /移动基础架构的部署系统。为此我们使用Pallet to create instances with the code签出并配置,然后我们有一个函数生成初始化脚本以在启动时启动服务。此过程适用于需要在云提供商上进行可重复构建的环境,因此对于您的情况而言可能过于沉重。
如果您正在寻找简单的定期工作,您可能需要查看Immutant这是应用服务器Clojure 并且对recurring jobs提供了很好的支持。