Django 后端任务和前端分离

Django 后端任务和前端分离,django,django-rest-framework,backend,background-task,Django,Django Rest Framework,Backend,Background Task,我对内部API使用Django和Django Rest框架,对前端使用Vue.js。后端(API)和前端完全分离 我需要运行后台任务(每次创建用户时),我正在考虑两种解决方案: 调用(使用post_保存信号)运行任务的函数。 请注意,此函数将调用第三方API。呼叫可能因各种原因失败和/或在长时间~20秒内运行 创建后台任务 使用Redis或RabbitMQ或django后台任务 我应该选择哪种解决方案? 如果两种解决方案都可以接受,那么每种方案的局限性/优势是什么?您可能需要django芹菜。对

我对内部API使用DjangoDjango Rest框架,对前端使用Vue.js。后端(API)和前端完全分离

我需要运行后台任务(每次创建用户时),我正在考虑两种解决方案:

  • 调用(使用post_保存信号)运行任务的函数。
  • 请注意,此函数将调用第三方API。呼叫可能因各种原因失败和/或在长时间~20秒内运行

  • 创建后台任务
  • 使用Redis或RabbitMQ或django后台任务

    我应该选择哪种解决方案?
    如果两种解决方案都可以接受,那么每种方案的局限性/优势是什么?

    您可能需要django芹菜。对于django来说,这是一个很好的后台任务包,您可以选择Redis或RabbitMQ作为代理,在我看来,代理并不重要

    为什么这能很好地解决你的问题

  • 这很容易安装,只需要安装django芹菜和redis(我更喜欢redis),配置一些设置,现在就有了异步功能
  • 您可能很快需要一个计划任务,您只需要安装它的附加包
  • 您只需要构建类型函数并附加一个decorator,它就可以是异步的
  • 来自芹菜导入共享任务
    
    @共享任务
    def添加(x,y):
    返回X+y
    

    并在代码中的任何地方调用它

    add.delay()


    您知道如何完成后台任务。

    谢谢。我知道它是这样工作的,我在以前的项目中使用芹菜来安排任务,我看到了它的优点。但这是一个概念性的问题,我想知道前端和后端分开的情况下每个选项的优缺点@建议和反对意见取决于您现在和将来的确切需求以及预算和。。。问题解决了topic@YassineBelmamoun实际上,如果你有单独的后端或前端并不重要,在一天结束时,你的帖子会转到后端,在那里你可以使用signal或者在自定义视图中操作一些东西,如果你有,调用你想要的方法。现在您的问题是选择什么作为后台任务,您可能需要浏览[[@reon,这很重要。如果你不将后端和前端分开,当你做一个请求时,在请求完成之前你不会收到答案。@Adelin我在问这个特定情况下的技术优缺点。使用解决方案1和解决方案2在技术上有什么区别吗。