我正在构建一个用户提交pdf文件的Web服务,并使用Tika
从这些文件中提取文本中的内容。我在服务器模式下使用Tika
在我托管Django
网站的同一台计算机上。
我的问题是,有没有办法在Tika
服务器因任何原因关闭时自动重启?我如何构建一个脚本并运行它,以便每当Tika
服务器关闭时,这将被跟踪并且服务器再次重新启动?我的最终目标不是每天从控制台检查Tika
是否已关闭,当用户抱怨她的pdf被提取时,都没有意识到服务已关闭。
答案 0 :(得分:3)
由于您使用的是Ubuntu的最新副本,因此您最简单的选择可能是为其创建自定义Upstart作业。在其他unix上,你需要类似于他们的init系统的东西,在Windows上我觉得用Apache Commons Daemon来封装它作为Windows服务可能是最好的选择。
作为covered in this post over on Ask Ubuntu,你需要的关键是respawn
选项,告诉新手重新启动Tika服务器,如果它失败了,并且如果它真的得到了限制因某种原因破了。
您需要创建一个文件/etc/init/tika-server.conf
,内容如下:
description "Apache Tika Server"
start on filesystem or runlevel [2345]
stop on shutdown
respawn
respawn limit 3 12
exec java -jar /path/to/tika/tika-server-1.10-SNAPSHOT.jar
调整Tika Server jar的路径,并添加您想要的任何选项/参数。
完成后,要init-checkconf /etc/init/tika-server.conf
检查它是否有效,然后service tika-server start
启动它。
此时,您可以前往http://localhost:9998/
并看到它正在运行!如果它死了,新贵会为你重启它。