java - 当 App Engine (Java) 启动新实例时,如何确保任务队列 Memcache cron 在它们之间共享?

标签 java google-app-engine cron memcached task-queue

这是一个问题,我的应用程序在网站上偶尔会遇到 CPU 限制峰值,其中几乎所有工作都是由于 cron 任务而完成的,该任务每小时频繁运行以调用重新填充内存缓存的任务队列。

最近该网站的流量激增,导致多个实例启动。

然而,令我惊讶的是,尽管只有不到 1% 的 CPU 使用率与流量峰值相关,但那几天我还是不得不降低 Memcache 任务的频率。 (此应用程序中完成的 99% 的工作是 (a) 在内存缓存任务队列中和 (b) 在客户端 JavaScript/JSON 逻辑中)。

我想知道的是,启动的其他实例是否都需要自己的 Memcache 任务队列,也许这就是为什么我在那些日子里看到与重新填充 Memcache 的任务队列相关的 CPU 使用率要高得多的原因 - 该任务实际上是为每个实例单独执行的

如果是这样,我如何确保任务队列及其填充的 Memcache 在实例之间共享(如果可能的话)?

最佳答案

任务队列和内存缓存都是全局的。您可能以某种取决于实例数量的方式将任务排入队列,因此您启动了比应有的任务更多的任务 - 如果没有看到您的代码,就无法判断。

关于java - 当 App Engine (Java) 启动新实例时,如何确保任务队列 Memcache cron 在它们之间共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4725365/

相关文章:

java - 如何在运行时从 jar 加载工作目录中的 .class?

java - Tomcat 类加载器违反委托(delegate)策略

java - 如何从实体类spring boot生成CRUD存储库类

javascript - AppEngine API 客户端身份验证在更新后停止工作

python - AppEngine/Python NDB 键顺序

java - 无法安装 Google App Engine 插件 (Eclipse 3.6)

java - 如何知道 Pentaho Scheduler 的下一次运行时间?

java - 如何使用具有单表模型的 POJO 创建 JTable

python - 如何同时监控两台 PC 上的 Internet 连接?

bash - cron 作业-ack : command not found