如何在不等待的情况下向Celery发送任务



我的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也不是异步的:(

相关内容

  • 没有找到相关文章

最新更新