如何从supervisord优雅地停止Akka Cluster成员

时间:2017-09-20 09:19:45

标签: akka supervisord akka-cluster

我运行的是由supervisord(http://supervisord.org/)控制的Akka Cluster(版本2.5.0)。我的问题是,当我停止一个带有supervisorctl stop my-service的akka​​节点时,akka节点停止,但没有足够的时间从akka集群注销自己,而且其他节点不控制(即)单身演员。

我的主管配置如下所示:

[program:my-service]
command=java -jar -Dconfig.file=application-1.conf -Dfile.encoding=UTF-8  my_service.jar
directory=/data/my-service
autorestart=true
autostart=true
user=lm-service
startsecs=3
startretries=3
stopsignal=KILL
stopwaitsecs=10
redirect_stderr=false
stdout_logfile=/data/my-service/logs/stdout
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/data/my-service/logs/stderr
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB

我是否必须在我的akka​​应用程序中添加一些关闭挂钩,或/并且我是否必须更改配置中的stopsignal参数?

1 个答案:

答案 0 :(得分:2)

停止信号应为from selenium import webdriver driver = webdriver.Firefox() driver.get('http://www.w3c.org') element = driver.find_element_by_name('q') element.send_keys('hi mom') element_text = element.text element_attribute_value = element.get_attribute('value') print (element) print ('element.text: {0}'.format(element_text)) print ('element.get_attribute(\'value\'): {0}'.format(element_attribute_value)) element = driver.find_element_by_css_selector('.description.expand_description > p') element_text = element.text element_attribute_value = element.get_attribute('value') print (element) print ('element.text: {0}'.format(element_text)) print ('element.get_attribute(\'value\'): {0}'.format(element_attribute_value)) driver.quit() SIGTERM将触发akka的协调关闭系统,在这种情况下,您的群集节点应正确离开群集。参见:

但是,这并不能保证其他节点能够及时控制。请参阅此引文 http://doc.akka.io/docs/akka/current/scala/cluster-singleton.html

  

请注意,在切换过程中没有活动的单身人士的时间很短。