You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何触发ECS服务中所有Fargate任务执行PHP缓存清理脚本?

需求与问题

背景

我需要从ECS服务中某一Fargate任务的PHP脚本出发,触发所有运行中的Fargate任务执行PHP脚本。核心场景是:这些任务都配置了NGINX FastCGI Cache,当管理员在CMS中更新内容时,必须清除所有任务的缓存。目前我的NGINX配置已经包含/purge/[path]端点,可通过fastcgi_cache_purge指令清理缓存。

现有临时方案(不够优化)

管理员在CMS中保存更新后,执行以下PHP代码片段:

  • 通过AWS PHP SDK获取运行中的ECS任务数量
  • 根据任务数循环执行cURL请求
  • 调用/purge/[path]接口(需要多次尝试,避免重复命中同一任务)

备选方案疑问(不清楚PHP实现方式)

我想到了几种替代方案,但不确定具体怎么用PHP实现,还有一些细节疑问:

  • 共享文件系统方案:把fastcgi_cache_path改为AWS EFS这类共享文件系统?性能会不会比tmpfs差?ECS支持tmpfs,但挂载后是多任务共享还是每个任务独立?
  • AWS SNS/SQS方案:如何编写订阅和发布事件的PHP脚本?
  • Redis发布/订阅方案:具体怎么实现?ECS任务启动时如何启动长运行的订阅者?
  • ECS Exec方案:已经接近实现,但目前仅支持交互式模式,没有--non-interactive选项导致无法运行,有没有解决办法?

请求

请问有没有更优的方案?如果采用上述备选方案,能否给出PHP实现的方向?

内容的提问来源于stack exchange,提问作者WKFY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:39:13