使用Thread.sleep来减缓脚本速度的缺点是什么?

3
这涉及到使用Java的Google App Engine。
在这种情况下,“threadsafe”应设置为true,请在您的思考过程中考虑这一点。
哪些App Engine配额会受到影响?
目标是减慢某些用户(非付费用户)的速度,以使他们的请求需要更长时间才能到达。 (每个用户在网站/应用上花费的时间在数小时范围内。)因此,在用户被拖延两倍时间的情况下,每个用户节省了理论带宽使用量的一半,因为他们不需要花费更多时间来补偿; 在这种情况下,他们到了一天的结束,去睡觉。
具体而言,我的目标是让其更具成本效益。
线程延迟是否受CPU配额的影响?
(对这个话题感到抱歉,我假设这样的Java线程延迟本身不会产生CPU使用率,但我可能错了,这就是为什么我询问你们这些更有知识的人的原因。)
还有其他我应该考虑的不利因素吗?
(请确保考虑到,在这种情况下,用户本身不会受到网站加载较慢的负面影响,并且他们耐心地等待页面加载。这是一种用户不会被一点点滞后所困扰的应用程序,因为他们花费了很多时间来打发时间。希望这被理解了。)
感谢您提前提供任何想法,并感谢您至少阅读我的问题。

2
我听说Google App Engine将采用一种新的计费方案,不仅仅计费原始CPU时间,而是计算您的应用程序保持活动状态的时间,因为它继续占用内存等。因此,您的方法在新系统下会失去优势。 - C. K. Young
请查看http://googleappengine.blogspot.com/2011/05/year-ahead-for-google-app-engine.html以获取更多详细信息。 - C. K. Young
相反,我们的服务基础设施将按照运行实例的数量收费,作为一个新的单位称为“实例小时(IH)”(1个实例运行1小时)。我认为当启用“线程安全”时,实例和线程是不同的。当然,服务仍然会在需要时启动新的实例,所以现在我无法确定这是优点还是缺点,因为CPU不再是问题了。令人困惑。 - Alonso Harn
1
新的定价对你的计划将产生巨大的负面影响。目前,请求超过1000ms还会受到惩罚。因此,在新的定价下,你将使自己需要更多实例(这将直接导致成本增加),而目前你正在通过增加平均延迟来伤害自己(这将导致付费用户等待实例处理请求时出现延迟)。在当前或新的定价下都不是一个好主意。 - Robert Kluin
1个回答

2

根据当前的计费模型,如果您的处理程序平均需要超过1000毫秒才能返回响应,则您的应用程序将无法扩展。故意添加休眠调用会使您的应用程序变慢,并且不太可能被自动缩放。

在新的计费模型下,正如Chris所指出的,您将按实例小时收费,这意味着尽管您的应用程序可以很好地扩展,但您将支付更多的费用来减慢用户的速度。

当大多数人都试图削减响应时间的毫秒数时,您正在寻求人为减慢请求的方法;这似乎非常奇怪,并且可能会让您的用户离开。您是否最好为他们提供一个页面,告知他们超过配额并邀请他们稍后回来(或者支付您的费用)?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接