在ECS服务的所有正在运行的Fargate任务上触发PHP脚本的最佳方法是什么?我需要从ECS任务的另一个PHP脚本中触发这一点。我需要这样做的原因是,我在这些单独的ECS任务上有NGINX FastCGI缓存,并且当管理员在CMS中进行更新时,需要清除所有任务的缓存。
我的NGINX配置有一个/ purge /path端点,它将使用fastcgi_cache_purge清除缓存,而且我目前确实有一个工作有点麻烦的解决方案,它看起来如下所示:
( a)使用AWS确定运行ECS任务的数量
)为运行的ECS任务数运行for循环。
( c)使用cURL调用/purge/path URL (多次尝试,因为它有时会碰到相同的ECS任务)
上面的工作,但不是最佳的。
这里有一些其他的解决方案,但我在网上找不到很多关于如何实现的信息:
是否有更简单/更好的解决方案?如果使用上述实现中的任何一种,是否有人能让我在如何使用PHP实现此实现方面走上正确的方向?
谢谢!
发布于 2022-07-30 12:16:27
老实说,这似乎是你上一个问题的重复,但我会回答:
EFS不是一个很好的选择,因为EFS是的慢速。它会扼杀缓存的任何性能好处。
Fargate上的tmpfs不会在实例之间共享。
使用AWS /SQS的
SNS可以工作,正如您在前面的问题中讨论过的那样。SQS根本不起作用,因为SQS消息只传递给一个使用者,您希望它被传递到所有实例。
。
是的,正如你在上一个问题中所讨论的那样,这是可行的。当然,这需要大量的定制编码。
这应该能行。为什么说--non-interactive还不可用?如果您只是关闭了--interactive参数,那么该命令将以非交互方式执行。
https://stackoverflow.com/questions/73174394
复制相似问题