我今天遇到了一些代码,这些代码被添加到网站的登录发布操作中。
System.Threading.Thread.Sleep(3000); //slow down bots
(值得注意的是,在强制用户点击离开页面之前,应用程序已经限制了失败的尝试。)
我想知道睡眠系统线程是否实际上正在按照评论的建议进行操作,从而减慢试图访问该站点的机器人?
如果这确实减慢了机器人的速度,它是否足够有效,值得实施?
谢谢。
我今天遇到了一些代码,这些代码被添加到网站的登录发布操作中。
System.Threading.Thread.Sleep(3000); //slow down bots
(值得注意的是,在强制用户点击离开页面之前,应用程序已经限制了失败的尝试。)
我想知道睡眠系统线程是否实际上正在按照评论的建议进行操作,从而减慢试图访问该站点的机器人?
如果这确实减慢了机器人的速度,它是否足够有效,值得实施?
谢谢。
Thread.Sleep
在服务器软件中没有地位,它的使用会导致 ThreadPool 饥饿,导致其他不相关的请求变得迟缓,这是由于 ThreadPool 创建新线程的惰性性质。
如果您真的想等待什么都不做,请异步执行。我不明白为什么这可能会有所帮助。如果您的页面请求服务缓慢,您将被某些搜索引擎标记。
不,不会的。原因是机器人端的登录请求(可能)是异步的。发送请求后,机器人简单地释放他的线程并继续前进,直到您的服务器响应。
另一方面,您正在锁定自己的线程,等待,而不是处理来自合法用户的其他请求。你基本上是在踢自己的脚。