轮询和拉取有什么区别?

50

轮询和拉取(如果有的话)有什么区别?


2
嗯,上下文是什么?我猜轮询是每隔一段时间向服务器询问是否有感兴趣的内容发生了变化。我猜拉取是查询服务器并返回结果集。 - FrustratedWithFormsDesigner
1
这些词的含义取决于它们所使用的上下文。一般来说,它们是相同的概念。 - Kevin Panko
7
至少在ASCII中,这两者的差别为0x06。EBCDIC可能会有所不同 :-) - paxdiablo
1
@Kevin 不,我认为它们不一样。首先,考虑这两个动词的直接宾语:一个“轮询”服务器,但只有在你需要将服务器移动到另一个房间时才会“拉”它。 - Pointy
1
就 soundex 而言,它们是相同的(P452)! - FrustratedWithFormsDesigner
显示剩余2条评论
6个回答

49

这是两个不同的词。"Poll"表示询问答案,"Pull"表示使用力量将某事物(实际或概念上)朝自己移动。

"Poll"用于客户端软件定期向服务器请求某些内容。"Pull"则指从数据库中向客户端软件获取数据。

需要注意的是,在计算机领域中,这两个单词都有多种不同的用法,但我无法想到任何情况下它们可以互换而不改变意义。在低级设备驱动程序代码中,可能会使用"poll"来轮询接口以检查其是否就绪进行某些操作,并且与此没有网络流量相关。在电子学中,可以使用"pull"来拉高或拉低信号。

客户端可能会同时向服务器"poll"和"pull"数据,但请注意,当我使用每个动词时,我使用不同的直接宾语。只有在你要把服务器拖过计算机房地板时才有意义地说"pull the server"。


1
+1 虽然我也能理解“pull the server”的意思,就是从服务器上拉取数据。 =) - amara
@Vuntic “拉服务器”意味着将服务器移动到自己更近的位置。如果没有介词“from”,其含义显然且明显不同。 - Pointy
哈哈 =)我知道!但是仍然有很多人(我并不那么古怪)可能会理解某人谈论从服务器中提取数据时所说的“拉取服务器”。虽然这听起来有点奇怪。 - amara
@Vuntic 是的,语言是一个模糊的东西,单词的含义随时都在变化! - Pointy
@MosabShaheen 我喜欢这个定义,我认为它提供了一些清晰度。客户端可能会轮询以“希望”获取数据。但是轮询请求也可能不会拉取数据。 - uh_big_mike_boi
显示剩余2条评论

9

投票是像盖洛普对美国人民进行投票调查一样的活动。他们通过提出问题来查询特定信息。

拉取就像你对绳子所做的那样。你想让绳子(或文件或某些数据)在你的位置,所以你把它拉向你。


1
每个人都是喜剧演员 - 正如麦肯罗所说的“你不可能是认真的”,做好准备等待那些叮声,它们肯定会到来。 - Romain Hippeau
1
我认为这是一个严肃的回答。 - Kevin Panko
1
@Romain:它很清楚地说明了差异。怎么了?你不喜欢既清晰又幽默的例子吗? - FrustratedWithFormsDesigner

7

可能会有微小的差别。

轮询是在设置的时间间隔内尝试请求信息。

拉取只是指您从其他人那里请求数据,而不是让他们将数据发送给您。

话虽如此,我听说它们可以互换使用。


1
在某些层面上,它们是相同的(你要求某些东西给你信息),而在其他层面上,它们完全不同(短状态更新与完整记录集)。哦,它们在发音上也非常相似(用英语),但你不应该让这使你误以为它们是那么相似。 - FrustratedWithFormsDesigner

1
关于网络通信,它们都指的是同一种方案,即定期从外部源请求数据。请参见拉取技术
当然,相反的是推送,即在数据可用时发送数据。

我认为这些意义实际上并不相同。 - Pointy

1

“Poll”是快速请求,而“Pull”是缓慢的需求。

一个人可以通过“Poll”来询问信息是否立即可用,而这个信息可以通过“Pull”获取。区别不在于“Poll”的答案必须是布尔值,而在于“Poll”的答案是快速和容易获得的,否则答案将被拒绝。“Poll”意味着提供了选择,这与“Pull”相反,后者没有提供选择。“Pull”可能会导致调用者等待信息变得可用,或者在实际可用时提供其他方式将详细信息返回给调用者。


0
对于实际应用示例,我遇到了这篇文章(第一段)关于变更数据捕获的内容:
引用: [...] 或下游服务和应用程序定期轮询源数据库,拉取更新的数据。

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