Python Redis队列

Python Redis队列,python,flask,redis,python-rq,Python,Flask,Redis,Python Rq,我想在redis+Flask和Python中实现一个队列。 我已经用RQ实现了这样一个查询,如果Flask应用程序和任务在同一台服务器上工作,它就可以正常工作。我想知道是否有可能创建一个队列(多消费者),其中工人实际上位于另一台服务器上。例如: 客户端将数据发布到Flask->Flask在Redis队列->Redis队列中创建一个项目,该项目由其他服务器(后端)上的一些工作人员拾取 因为Flask中的代码类似于: redis_conn = Redis() q = Queue('my_queue'

我想在redis+Flask和Python中实现一个队列。 我已经用RQ实现了这样一个查询,如果Flask应用程序和任务在同一台服务器上工作,它就可以正常工作。我想知道是否有可能创建一个队列(多消费者),其中工人实际上位于另一台服务器上。例如:

客户端将数据发布到Flask->Flask在Redis队列->Redis队列中创建一个项目,该项目由其他服务器(后端)上的一些工作人员拾取

因为Flask中的代码类似于:

redis_conn = Redis()
q = Queue('my_queue', connection=redis_conn)
job = q.enqueue_call(func='myqueue.myfunc', args=(json,), result_ttl=5000)
显然,“myqueue.myfunc”需要留在Flask服务器上,但我希望能够推送数据并在另一台服务器上有一个辅助服务器。你知道这是否可行,或者有什么其他方法可以用来解决这个问题吗


谢谢。

顺便说一句,我想到了芹菜,但我想知道是否还有其他可能的解决方案。我认为将许多工人连接到您的redis服务器没有任何问题。你能清楚地描述你的问题吗?还有很多不同的分布式队列解决方案。只需在谷歌上快速搜索一下,就会发现:,嗨,彼得,我想做的是构建一个redis队列(我想使用redis,而不是RabbitMQ这样的技术——尽管它实际上很好)。基本上,我希望能够将数据推送到Redis(JSON数据),让多个工作人员(在多台服务器上)解析数据,执行一些内存密集型任务,然后将数据保存到数据库中。例如,我希望后端有2/3个服务器(不能从公共IP访问),每个服务器上有5/10个工作线程来处理Redis队列。我想使用“rpush”,但我不知道是否有更好的解决方案。我不知道如何在分布式环境中正确地实现Python RQ,因为当我进行排队时,我需要提供类名/函数名,而类名/函数名在另一台服务器上。