有没有什么方法可以限制用.NET编写的Windows服务的cpu使用率,无论是在服务代码内部还是外部.将当前线程设置为最低优先级不是一个选项,但是一旦异常开始发生,cpu负载就会上升,是否可以限制它?
我正试图找出如何使用Spring Security限制登录(http://stackoverflow.com/questions/570160/throttling-login-attempts).有人有想法吗?
我有一个程序,可以按名字和姓氏搜索 LinkedIn 成员,用于学术研究。
我有一个 LinkedIn 开发者帐户,应该每天对相关的“搜索人员”资源进行 10 万次调用,但只有 400 次以上(请参阅下面的统计数据)时,API 调用会引发异常,说“调用此资源的限制到达了”。
在我的限制如此之高的情况下,这怎么可能?
——
来自他们网站的 LinkedIn 统计数据:
从 2013 年 1 月 23 日午夜 UTC 开始到现在的 API 使用报告
资源:搜索人物
用法:调用次数:409 允许:100000
状态:OK(绿色勾号)
限制成员:1(搜索人员的限制成员列表:Idb_YiFpOs)
我有一个观察我订阅的.这个obsevable将返回一个对象,该对象具有一个名为ActivationType的属性,可以多次设置.
我想要实现的是每当ActivationType设置为"Type1"时记录一条消息.但是,如果ActivationType设置为"Type2",则只记录消息一次并等待30秒,然后再次记录,如果ActivationType为"Type2".
所以,如果我有:
myObservable
.Where(o => o.ActivationType == "Type1" || o.ActivationType == "Type2") //listen for types 1 and 2
.Throttle() // ??? somehow only throttle if we are currently looking at Type2
.Subscribe(Log); //log some stuff
Run Code Online (Sandbox Code Playgroud)
我相信Throttle()是我正在寻找的,但我不确定如何有条件地触发它.
有什么建议?
假设我们有一个Oozie工作流,它有一个复制操作节点,然后是一个Shell操作节点.我可以启动这样一个OOzie工作流的多个实例并并行运行吗?并发数量如何达到数千和/或甚至数百万的水平.这是可能的,甚至Oozie是否支持高级并发?
如果没有,那么我们将不得不考虑限制并对可以有多少并发Oozie工作流实例设置上限.我们更喜欢在服务器/ Oozie端(基本上使用任何开箱即用的Oozie软件功能)限制它,而不是在客户端/被叫方端.例如,我们有一个巨大的启动脚本,其中包含这样的行.我们希望一次性运行它,然后让Oozie弄清楚如何在自身上限制所有这些实例.我们不想将它分成多个较小的块,然后一次启动一个块.
oozie job -oozie http://myhost.com:11000/oozie -config job1.properties -run
oozie job -oozie http://myhost.com:11000/oozie -config job2.properties -run
......
oozie job -oozie http://myhost.com:11000/oozie -config job1000000.properties -run
Run Code Online (Sandbox Code Playgroud) 我需要为节流请求设计一个速率限制器服务。对于每个传入的请求,方法将检查每秒的请求是否超过其限制。如果已超过,它将返回等待处理的时间。
寻找一种简单的解决方案,仅使用系统刻度计数和rps(每秒请求数)。不应使用队列或复杂的速率限制算法和数据结构。
编辑:我将在C ++中实现。另外,请注意,我不想使用任何数据结构来存储当前正在执行的请求。API将如下所示:
如果(!RateLimiter.Limit()){做RateLimiter.Done();
} else拒绝请求
我想添加一种方法来限制来自某个客户端的每个API上发出的请求数量.所以,我想基本上限制每个客户端每个API的请求数量.
我使用DropWizard作为框架.有人可以推荐实现这个目标的方法吗?我需要一些适用于分布式系统的东西.
我试图通过 AWS CLI 探索一项名为 Workspaces 的新 AWS 服务,它似乎能够满足每秒 1 个请求。当我尝试同时多次点击时,它会抛出ThrottlingException错误。由于工作空间尚未包含在boto包中,因此我通过子进程调用在 python 中使用 CLI。
def describe_workspaces():
process=subprocess.Popen(access_endpoint.split(), stdout=subprocess.PIPE)
output=process.communicate()[0]
Run Code Online (Sandbox Code Playgroud)
因此,如果我调用此函数 >=1/sec,则会出现 ThrottlingException。怎么处理呢?并且会有多个用户同时调用该函数。
我正在考虑进行批处理和异步调用,但如何适应这种架构?
我想知道如果要完成的任务数量很大,我们是否应该限制异步任务.假设您有1000个URL,您是否一次触发所有请求并等待所有请求:
var tasks = urlList.Select(url => downloadAsync(url));
await Task.WhenAll(tasks);
Run Code Online (Sandbox Code Playgroud)
或者您批量处理请求并逐个处理:
foreach (var urlBatch in urlList.BatchEnumerable(BatchSize)){
var tasks = urlBatch.Select(url => downloadAsync(url));
await Task.WhenAll(tasks);
}
Run Code Online (Sandbox Code Playgroud)
我认为批处理是没有必要的,因为第一种方法(立即触发所有请求)将创建由其安排的任务ThreadPool,因此我们应该ThreadPool决定何时执行每项任务.但是,有人告诉我,实际上只有在任务是计算任务时才有效.当任务涉及网络请求时,第一种方法可能导致主机挂起??? 这是为什么 ?
我可以找到减少该值的方法,但在我的情况下,我正在运行许多异步 API 调用,需要将 X-RateLimit-Limit 增加到 100 以上才能工作。
以下是我得到的回应
PS - 我也在使用 auth 中间件
eHTTP/1.1 429 Too Many Requests
Run Code Online (Sandbox Code Playgroud)
日期:2017 年 3 月 10 日星期五 11:18:24 服务器:Apache/2.4.17 (Win32) OpenSSL/1.0.2d PHP/5.5.35 X-Powered-By:PHP/5.5.35 Cache-Control:no-缓存X-RateLimit限:60 X-RateLimit-剩余:0重发后:24的Set-Cookie:XSRF-TOKEN = eyJpdiI6ImtuSU5EMXo0YXlrSU1MWnVnUFRyeUE9PSIsInZhbHVlIjoicVVkMU55V2lkcHNvMkRqaFlCUFZnK3lcL0pRckNpcjMyZll3UkVaWXNEYWhSazdcL2Jub3M4QmtpZDhDQWVCZjhzWE5KV0paaGlZMGJOQ1J1TGNFYnhkdz09IiwibWFjIjoiZTNlNzY3MDc2ZWExMjBhZDI0MjA3NzNjYjE5YWU1NmIzZmEyY2RiOWI4NDBmOGI5MjVmN2E2ZTUzNDE3YjdmNyJ9; 到期=周五,2017 年 3 月 10 日 13:18:25 GMT;最大年龄=7200;路径=/设置-Cookie:laravel_session = eyJpdiI6IkRoSWV2dzFHV3F5YUJNR2tCMEhKSUE9PSIsInZhbHVlIjoiTzdhOW12ZFozNnJtaW5vRFBHdFVZV1l2SDdXcEpvdEN6MGdRTkZsRzFoeU9yb2VXTDN5cVA0a1d5NnZ1MCtEMTRKNFRES1ZsODg5YmswY2F5cEN0c1E9PSIsIm1hYyI6ImY5YjYyMmNiNDE1YzgxYmQ3NzE5NjYyMTk0YmEzNzU2NTg4MzZhZWYyNDVjMWVkMzJmNzRiMmUwODFjYjRiYWMifQ%3D%3D; 到期=周五,2017 年 3 月 10 日 13:18:25 GMT;最大年龄=7200;路径=/;httponly Content-Length: 18 Keep-Alive: timeout=5, max=99 Connection: Keep-Alive Content-Type: text/html; 字符集=UTF-8
太多的尝试。
throttling ×10
.net ×2
c# ×2
rest ×2
algorithm ×1
api ×1
async-await ×1
asynchronous ×1
aws-cli ×1
boto3 ×1
concurrency ×1
cpu-usage ×1
dropwizard ×1
java ×1
laravel ×1
limit ×1
linkedin ×1
login ×1
oozie ×1
php ×1
python ×1
service ×1