小编Cyb*_*bat的帖子

有没有办法在通知后取消处理程序?

我有一个由一堆dockerized微应用程序组成的环境,其中一些依赖于其他人,彼此链接并通过docker接口上的http进行通信.我的问题是docker-compose仅跟踪了docker-compose.yml文件并且仅在docker-compose.yml被更改时才重新创建容器.有了ansible,我终于可以开始跟踪配置文件了,这些配置文件作为卷安装在容器中,因此它们可以从模板中部署 - 这非常有效.

在我以前运行的ansible之前:

 docker-compose stop <app> && docker-compose rm -f <app> && docker-compose up -d
Run Code Online (Sandbox Code Playgroud)

当我知道已安装的文件已更改且需要刷新卷时刷新单个应用程序.

我已经为每个应用程序使用docker_service模块定义了多个角色,每个应用程序都有自己的处理程序,当收到通知时,运行上面的代码,刷新该特定应用程序.

问题是,当多个应用程序更改了其挂载的文件时,ansible会通知每个处理程序并且每个处理程序都会被执行,这与我需要的情况不同,因为当主容器(其他人依赖的)被重新创建时,其他人不需要因为它们已经被重新创建,但它们的处理程序也正在被执行.所以我的问题是:有没有办法取消通知的处理程序?我知道flush_handlers但是只执行通知的处理程序,而不是我需要的.

notify ansible ansible-playbook docker-compose

4
推荐指数
1
解决办法
724
查看次数