Task Message Protocol

Message format

  • task


    Name of the task. required

  • id


    Unique id of the task (UUID). required

  • args


    List of arguments. Will be an empty list if not provided.

  • kwargs


    Dictionary of keyword arguments. Will be an empty dictionary if not provided.

  • retries


    Current number of times this task has been retried. Defaults to 0 if not specified.

  • eta

    string (ISO 8601)

    Estimated time of arrival. This is the date and time in ISO 8601 format. If not provided the message is not scheduled, but will be executed asap.

Example message

This is an example invocation of the celery.task.PingTask task in JSON format:

{"task": "celery.task.PingTask",
 "args": [],
 "kwargs": {},
 "retries": 0,
 "eta": "2009-11-17T12:30:56.527191"}


The protocol supports several serialization formats using the content_type message header.

The MIME-types supported by default are shown in the following table.

Scheme MIME Type
json application/json
yaml application/x-yaml
pickle application/x-python-serialize
msgpack application/x-msgpack

Table Of Contents

Previous topic

Internals: The worker

Next topic

List of Worker Events

This Page