Python 3.x Redis命令来测试芹菜的工作
我正在试验一个芹菜工人使用Redis作为经纪人 这是我对芹菜工人的测试代码:Python 3.x Redis命令来测试芹菜的工作,python-3.x,redis,celery,Python 3.x,Redis,Celery,我正在试验一个芹菜工人使用Redis作为经纪人 这是我对芹菜工人的测试代码: from celery import Celery app = Celery('tasks', broker='redis://xxxxx.net:6379/0') @app.task def nextexec(payload): print(payload) 使用redis cli,我运行以下命令将值插入celery队列(由celery自动创建) 但是,当执行查询时,我的工作程序系统性地崩溃,我得到一个不
from celery import Celery
app = Celery('tasks', broker='redis://xxxxx.net:6379/0')
@app.task
def nextexec(payload):
print(payload)
使用redis cli
,我运行以下命令将值插入celery
队列(由celery自动创建)
但是,当执行查询时,我的工作程序系统性地崩溃,我得到一个不可恢复的错误:JSONDecodeError
。它似乎接收到None
,而不是假定要解码的JSON字符串
知道我需要执行什么Redis查询,或者需要对这个(但很简单的)工作脚本进行什么更改吗?芹菜用来在客户端和工作脚本之间传输数据。每个消息都需要序列化,并且都有一个content_类型的头,该头描述了用于对其进行编码的序列化方法
下面是使用json序列化的示例消息
{'body': 'W1sxXSwge30sIHsiY2FsbGJhY2tzIjogbnVsbCwgImVycmJhY2tzIjogbnVsbCwgImNoYWluIjogbnVsbCwgImNob3JkIjogbnVsbH1d',
'content-encoding': 'utf-8',
'content-type': 'application/json',
'headers': {'argsrepr': '(1,)',
'eta': None,
'expires': None,
'group': None,
'id': '5ce9a8d8-41d7-47a4-9074-beedabd88dcc',
'kwargsrepr': '{}',
'lang': 'py',
'origin': 'gen5339@pavilion',
'parent_id': None,
'retries': 0,
'root_id': '5ce9a8d8-41d7-47a4-9074-beedabd88dcc',
'task': 't.wait',
'timelimit': [None, None]},
'properties': {'body_encoding': 'base64',
'correlation_id': '5ce9a8d8-41d7-47a4-9074-beedabd88dcc',
'delivery_info': {'exchange': '', 'routing_key': 'celery'},
'delivery_mode': 2,
'delivery_tag': '0177eb65-344e-4b1c-ab5f-8e2f5d75b8d3',
'priority': 0,
'reply_to': 'a5c611b8-18b3-3bbb-b598-c3757f06c4fd'}}
芹菜工人需要接收指定格式的消息。您不能向代理(redis)推送一些值,并期望芹菜来执行它
使用python对任务进行排队
from mymodule import nextexec
payload ='some payload'
nextexec.delay(payload)
芹菜用来在客户和员工之间传输数据。每个消息都需要序列化,并且都有一个content_类型的头,该头描述了用于对其进行编码的序列化方法
下面是使用json序列化的示例消息
{'body': 'W1sxXSwge30sIHsiY2FsbGJhY2tzIjogbnVsbCwgImVycmJhY2tzIjogbnVsbCwgImNoYWluIjogbnVsbCwgImNob3JkIjogbnVsbH1d',
'content-encoding': 'utf-8',
'content-type': 'application/json',
'headers': {'argsrepr': '(1,)',
'eta': None,
'expires': None,
'group': None,
'id': '5ce9a8d8-41d7-47a4-9074-beedabd88dcc',
'kwargsrepr': '{}',
'lang': 'py',
'origin': 'gen5339@pavilion',
'parent_id': None,
'retries': 0,
'root_id': '5ce9a8d8-41d7-47a4-9074-beedabd88dcc',
'task': 't.wait',
'timelimit': [None, None]},
'properties': {'body_encoding': 'base64',
'correlation_id': '5ce9a8d8-41d7-47a4-9074-beedabd88dcc',
'delivery_info': {'exchange': '', 'routing_key': 'celery'},
'delivery_mode': 2,
'delivery_tag': '0177eb65-344e-4b1c-ab5f-8e2f5d75b8d3',
'priority': 0,
'reply_to': 'a5c611b8-18b3-3bbb-b598-c3757f06c4fd'}}
芹菜工人需要接收指定格式的消息。您不能向代理(redis)推送一些值,并期望芹菜来执行它
使用python对任务进行排队
from mymodule import nextexec
payload ='some payload'
nextexec.delay(payload)
谢谢你的回答,这是我一直在寻找的信息,从芹菜文档和教程中看不清楚。谢谢你的回答,这是我一直在寻找的信息,从芹菜文档和教程中看不清楚。