scrapy 中间件:数字是什么意思(例如 ProxyMiddleware':410)?

scrapy middleware: what the number means (eg. ProxyMiddleware': 410)?

很抱歉提出一个非常基本的问题,但是 410myproject.middlewares.ProxyMiddleware': 410 中的含义是什么? (太明显了,没有人谈论它!)。

RandomUserAgentMiddleware': 400 
HttpProxyMiddleware': 110
ProxyMiddleware': 100

我在 tuto 中没有找到任何相关信息。

EDIT 它不是 this 的重复:答案说数字用于排序顺序但没有解释为什么他们使用特定数字。为什么在我上面的示例中 RandomUserAgentMiddleware 使用 400,为什么不使用 399 或 401,这有什么原因吗?或者我们应该粗略地取符合顺序的任何数字?

这个数字可以大致是任何符合顺序的数字,也可以让您灵活地在两者之间安装一些其他中间件。

因此,您使用 100, 200, 300, ... 而不是 1, 2, 3,...,这样可以在现有中间件之间添加中间件时提供更大的灵活性。最后,中间件将按此编号排序并按顺序执行。所以

{
"A": 200,
"B" : 400,
"C" : 300
}

相当于

{
"C" : 200
"A": 100,
"B" : 400,
}

两者都会按顺序执行中间件A, C, B