问题标签 [python-rq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7340 浏览

redis - Python Reddis Queue ValueError:来自 __main__ 模块的函数无法由工作人员处理

我正在尝试使用 python-rq 在 redis 中排队一项基本工作,但它会引发此错误

“ValueError:工作人员无法处理主模块中的函数”

这是我的程序:

0 投票
1 回答
980 浏览

python - 在 python-rq 任务中的 Youtube-dl 监控状态

我正在尝试投票以查看 youtube-dl 工作的状态。我无法弄清楚如何让它发挥作用。

以下是我的 python-rq worker.py 文件

在我的主应用程序中,我尝试了所有变体,但似乎仍然无法获得 logger/my_hook 输出。

一旦我有了job_id,我似乎唯一能得到的就是job.result,如果它没有完成就返回None,我尝试打印以查看状态,但似乎找不到它。

我可能正在考虑让 my_hood 或记录器写入一个单独的临时文件,我可以读取该行,但我认为这可能是过度的?任何帮助将不胜感激或可能的解决方法。

0 投票
0 回答
556 浏览

python - 如何为 python-rq 运行 rqworker

我在 Ubuntu 机器(ngnix 和 uwsgi)上有一个小型 Python 烧瓶网络服务器,我刚开始使用它来接收和处理 webhook。webhook 处理的一部分可能包括发送电子邮件,我注意到这会导致延迟并随后阻止响应返回给发送 webhook 的服务器。

在研究缓解这种情况的方法时,我发现了python-rq(又名 rq),它可以让我将函数调用排队,然后立即响应 webhook。在测试中,这很好用!

我正在我的服务器上对其进行测试,并且要启动 rq,我必须rqworker在与我的网站相同的目录中运行。这非常适合测试,但我不想登录服务器来启动 rq 只是为了保持运行。

我遇到的一些想法:

  • python-rq 文档提到了主管,http ://python-rq.org/patterns/supervisor/ ,但我不知道我是否需要那么多开销。
  • 使用重新启动,一个简单的 cron 作业可以解决问题吗?

这是一个小型内部服务器。我不想过度设计它(我觉得我已经在朝那个方向爬行),但我也不想为了确保所有部件都正常工作而不得不照看它。

如何设置 rqworker 使其在网站应用程序目录中自行运行?

0 投票
0 回答
216 浏览

python - 避免在 python-rq 应用程序中进行数据库轮询

我有一个 Flask 应用程序,它安排长时间运行的作业使用 python-rq 运行。我的要求之一是用户可以指定在任何给定时间运行的作业数量。

如果用户使用的值小于当前正在运行的作业,该应用程序不需要终止任何作业,但它需要生成另一个作业以防用户增加限制。

要运行一个作业,rq worker 需要一些时间,但它不需要照看作业,它可以安全地运行它并继续下一个作业。

我的问题是,有时初始设置阶段可能需要一些时间,因此仅使用一名工作人员可能并不理想。另一个更让我烦恼的问题是,使用这个方案,我的 rq 工作人员必须轮询数据库才能知道他们何时可以继续并启动另一项工作。有没有更好的方法来构建这个?

0 投票
3 回答
15691 浏览

python - 如何在 Python-RQ 中创建多个工作人员?

我们最近被迫用 RQ 替换 celery,因为它更简单,而且 celery 给我们带来了太多问题。现在,我们无法找到动态创建多个队列的方法,因为我们需要同时完成多个作业。因此,基本上对我们的一个路由的每个请求都应该启动一项工作,让多个用户等待一个用户的工作完成,然后我们才能继续下一个工作是没有意义的。我们会定期向服务器发送请求,以获取作业的状态和一些元数据。这样我们可以用进度条更新用户(这可能是一个漫长的过程,所以为了用户体验必须这样做)

我们正在使用 Django 和 Python 的rq库。我们没有使用django-rq(请让我知道使用它是否有优势)

到目前为止,我们在其中一个控制器中开始了一项任务,例如:

然后在我们的render_task方法中,我们根据长任务的状态将元数据添加到作业中:

现在我们有了另一个端点,它获取当前任务及其元数据并将其传递回客户端(这通过 oeriodic AJAX 请求发生)

我们如何在不阻塞其他作业的情况下同时运行作业?我们应该动态地创建队列吗?有没有办法利用工人来实现这一目标?

0 投票
1 回答
387 浏览

python-3.x - 如何在 python 3 的 UWSGI 中将 python-rq rqworker 作为附加守护程序运行而不会出现 ASCII 编码错误?

我正在尝试将 rqworker 作为 UWSGI 中的附加守护进程运行。为此,我添加到 config.ini 文件中:

然后 UWSGI 在应该启动 rqworker 时尝试启动,但我在日志中收到以下错误:

RuntimeError: Click 将中止进一步的执行,因为 Python 3 被配置为使用 ASCII 作为环境的编码。切换到 Python 2 或咨询http://click.pocoo.org/python3/以了解缓解步骤。

我可以从 bash 很好地运行 rqworker,但似乎没有为守护进程正确设置编码。

0 投票
1 回答
1624 浏览

python - 在 RQ 中排队实例方法或对象?

所以,RQ 明确声明我可以在这里加入一个对象的实例方法,所以我一直在尝试这样做,但是得到一个PicklingError

真的,我只需要在我的方法中访问一个 SQL 连接,所以我试着让它成为一个显式接受 SQL 连接的函数。这也失败了:

我该如何解决这个问题?我做错了什么,还是图书馆刚刚坏了?

0 投票
8 回答
4378 浏览

python - RQ AttributeError:“模块”对象没有属性

我正在尝试使用 RQ 创建后台作业:

我一直收到这个错误,似乎我在做一些愚蠢的事情?

'

0 投票
0 回答
1721 浏览

python - RQ Worker/Redis/Flask 上的 ImportError

我在使用此设置时遇到问题。总之,一旦用户在表单上按下提交,数据就会传递给 RQWorker 和 Redis 进行处理。

错误rqworker来自

我尝试过以多种方式启动 rqworker

视图.py

process_feed有一个process_checks按预期工作的函数。

我知道这是可行的,因为使用下面的行而不是 RQ 可以正常工作。

奇怪的是,在我关闭与 VPS 的 SSH 连接之前,这一切都运行良好。

运行ps -aux返回 this 表示 redis 正在运行

重启redis什么都不做,重启apache2也不做

我完全按照本指南操作,就像我说的那样,这一直有效,直到我终止与我的 VPS 的 SSH 连接

如果这有什么不同,我正在虚拟环境中运行,我在我的 WSGI 文件中调用它

min_content.wsgi

'

我已通过将其添加到脚本来确认 Redis 服务器正在运行

跑步redis-cli回报127.0.0.1:6379>

process_feed.py

0 投票
1 回答
741 浏览

python - 将 Django-RQ 异常发送到 Sentry

我在 Heroku 应用程序中使用 Django-RQ 来处理后台任务。

当我的后台任务中发生错误时,它不会发送到 Sentry。

我在 settings.py 中的日志记录设置如下:

感谢任何关于我做错了什么的提示。