2016-04-26 23 views
1

在后台线程上读了一点,似乎只允许后端实例。我创建了一个LRU实例缓存,我想调用周期性清理作业来删除所有过期的对象。这将在前端和后端实例中使用。如何为自动缩放实例创建后台线程的等效

我想过使用延迟或任务队列,但那些没有选项将请求路由回同一个实例。有任何想法吗?

回答

0

您可以使用将启动任务的cron作业。在这个任务中,您可以调用所有实例来清理过期的对象。

+0

您如何在所有实例上执行任务调用来执行某些操作?看看文档,我没有看到我可以指定的地方。 – user5831382

+0

您可以直接处理每个实例,并调用您喜欢的任何处理程序,例如“/ delete_expired_objects”。 –

+0

我阅读了如何直接解决每个实例,但文档似乎提到,如果您使用自动缩放,则实例是匿名的。 https://cloud.google.com/appengine/docs/python/an-overview-of-app-engine 无论哪种方式,即使模块API似乎没有任何功能,我可以以编程方式检索所有实例ID 。 – user5831382

0

memcache为你做的工作。您可以让数据根据LRU cache behavior过期或给数据过期时间。

+0

这当然是一个选择,但我更多地考虑存在于实例内存中的缓存。 – user5831382

+0

@ user5831382:你不能简单地使用限制吗?例如,最多可存储1,000个对象。如果碰到这个限制,删除所有已过期或最早的200个? –

+0

我目前正在做 - 在缓存已满时进行清理。但是,有时候,如果缓存结束快速填充,它最终会比我想要的更频繁地启动清理过程。 – user5831382

相关问题