我有一个DjangoREST web应用程序,它必须时不时地对长时间运行的任务进行排队。我想找出划分责任的最佳方法。
我的计划是让web应用程序队列成为Rq Worker的一个任务,但是Rq的API要求我提供实际函数作为.enqueue()的参数,而不仅仅是它的名称。这让我停顿了一下,因为我已经在rqworker容器的代码库中找到了函数。我可以通过直接写入redisdb而不使用rqapi将任务放入队列吗?我是否需要Rq Worker容器中的侦听器来侦听来自web应用程序的连接并为.enqueue()提供代理,以便web应用程序可以告诉Rq Worker容器要.enqueue什么?
如果我只是从我的web应用程序中对一个函数进行排队,而RQ告诉工作人员运行它,那么该函数是否必须在与我的web应用程序相同的容器中运行?如果我复制了函数的代码,使它在两个容器中都存在,这就行了吗?谢谢你的指导。