我的 symfony 应用程序有多个在单独的 docker 容器中运行的实例。
我已经配置我app.cache
使用redis:
framework:
cache:
app: cache.adapter.redis
我有同样的prefix_seed
:
framework:
cache:
prefix_seed: 'dev'
结果我进入redis是这样的:
1605259288.470950 [0 172.18.0.28:55044] "MGET" "HnMEIyUlZ+:workers.restart_requested_timestamp"
1605259288.471680 [0 172.18.0.28:55044] "SET" "HnMEIyUlZ+:workers.restart_requested_timestamp" "d:1605259288.471522;"
1605259314.483389 [0 172.18.0.29:42884] "MGET" "8TMgMtnOAG:workers.restart_requested_timestamp"
从上面可以看出,2 个不同的实例试图通过相同的键从 redis 中获取值,workers.restart_requested_timestamp
但即使使用相同的 . 前缀也是不同的prefix_seed
。
在这个例子中,我使用了 messenger 组件,我想通过stop-workers
命令(通过共享的 redis)停止工作人员到处运行。但一般来说这与缓存配置有关。
如何克服这个问题并告诉两个应用程序使用同一个池?这是什么配置?