我的tasks.py
文件中有以下代码:
@app.task(bind=True)
def create_car(self, car):
if car is None:
return False
status = subprocess.run(["<some_command_to_run>"])
return True
它应该运行命令<some_command_to_run>
,但由于某种原因,网站等待它完成。我认为芹菜的全部意义在于它将在后台运行并返回状态。如何以异步方式提交此任务?想要的行为:用户要求创建一个新的汽车实例,它会向队列中添加一个任务,并返回true,表示汽车被正确请求。在后台,它将运行该命令并返回(某个地方-还不确定在哪里(该状态。怎么做?
您只需要调用create_car.delay(instance.pk)
,delay()
即可使其异步。
它是JSON编码的,所以请确保只传递主键或JSON可序列化数据(模型实例不是(
小心,因为post_save
也不是异步的:(