文档对priority
属性的描述很少。其中一个罕见的文档参考说明如下:
priority (int): The task priority, a number between 0 and 9.
Defaults to the :attr:`priority` attribute.
(参考:http://docs.celeryproject.org/en/latest/_modules/celery/app/task.html#Task.apply_async)
但是,如果你转到下一页的底部 - http://docs.celeryproject.org/en/latest/userguide/calling.html - 你会看到:
优先 0到255之间的数字,其中255是最高优先级。
支持者:RabbitMQ,Redis(优先级反转,0最高)。
这两条信息相互矛盾。另外,我认为docstring更新了......
问题是哪一个是相关的,更重要的是:如何排序优先级 - 优先级= 0是否意味着最高优先级?或者它取决于后端,正如文档页面所说的那样......
我也为此做了一个GitHub问题 - https://github.com/celery/celery/issues/4599
更新1 :我在v4.0(http://docs.celeryproject.org/projects/kombu/en/latest/changelog.html)的kombu更新日志中找到了以下内容:
Redis:优先级0现在最低,9最高。 (向后不兼容)
这与AMQP的优先级相匹配。
由Alex Koshelev提供的修复。