任务请求:Task Request

app.Task.request 包含与当前执行任务相关的信息和状态。

该请求定义了以下属性:

属性名称

说明

id

执行任务的唯一ID

group

任务组的唯一ID(该任务是组成员的情况下)

chord

此任务所属的和弦的惟一id(如果该任务是标题的一部分)

correlation_id

用于重复数据删除的自定义ID

args

选项参数

kwargs

关键字参数

origin

发送任务的主机名

retries

任务重试次数,默认是从 0 开始的

is_eager

如果任务是由客户端执行,并非职程(Worker)执行,设置 True

eta

任务预计时间(如果已经设置的情况下),时间为 UTC 格式(取决于 enable_utc 设置)

expires

任务执行到期时间(如果已经设置的情况下),默认为 UTC 格式(取决于 enable_utc 设置)

hostname

执行任务的职程(Worker)实例的节点名

delivery_info

添加附加传递消息,主要用于包含交付任务的交换和路由键的映射,retry() 主要用于重新讲任务下发到队列中,该 dict 中的键可用取决于使用的消息中间人(Broker)。

reply-to

回复的发送的队列名称(例如,与 RPC 结果后端一起使用)

called_directly

如果职程(Worker)未执行任务,则此标志设置为true

timelimit

当前(软、硬)时间限制的元组(如果有的话)

callbacks

如果此任务成功返回,将调用的签名列表

errback

如果此任务失败,将调用的签名列表

utc

设置为 true ,启用 UTC

3.1 版本的新功能

headers

与任务消息一起发送的消息头的映射(可以为 None

reply_to

回复的地址(队列名称)

correlation_id

一般与任务的ID相同,通常用于AMQP中跟踪回复的内容

4.0 版本的新功能

root_id

此任务所属工作流中的第一个任务的唯一ID(如果有)

parent_id

调用此任务的任务的惟一id(如果有)

chain

反转形成链的任务列表(如果有)。列表中最后一个任务是当前任务执行成功之后的下一个任务。如果使用任务协议的第一个版本,则链任务将位于 request.callbacks

案例

访问上下文访问信息的一个任务案例:

@app.task(bind=True)
def dump_context(self, x, y):
print('Executing task id {0.id}, args: {0.args!r} kwargs: {0.kwargs!r}'.format(
self.request))

bind 参数表示该函数绑是一个绑定方法,可以通过访问任务类型实例中的属性和方法。

Edit on GitHub