【问题标题】:Python RQ and Redis Server: How does the worker know the function code to execute?Python RQ 和 Redis Server:worker 是如何知道要执行的函数代码的?
【发布时间】:2022-07-31 06:23:03
【问题描述】:

所以我希望有以下架构:

Flask API (VM 1) -> Redis 服务器 (VM 2)

我看过一些例子,我得到的想法是在 API 上定义处理作业的任务(工作人员将执行)并将其推送到 Redis 队列。 我不明白的是,远程工作者如何知道要执行的函数处理程序的代码?我见过的所有示例都将工作人员与 API 代码放在同一目录中...... Redis 服务器是否存储了 worker 将执行的函数的字节码? 我是否必须生成一个工人并将其链接到具有所有任务处理程序代码的代码?

请解释一下...

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python redis queue jobs rq


【解决方案1】:

this 了解,当您创建作业时,您要执行的指南代码必须在工作机器上。 本指南中的示例:

rq_job = current_app.task_queue.enqueue('app.tasks.' + name, self.id,
                                                *args, **kwargs)

在 app.tasks+'name' 中,您描述了存储在 Worker 中的 .py 文件的路径。

因此,Redis 存储有关作业的信息,并且 Worker 执行作业中描述的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    相关资源
    最近更新 更多