rq工作人员扔“valueerror” -- python 领域 和 redis 领域 相关 的问题

RQ Worker throwing “ValueError”


2
vote

问题

中文

我试图在我的烧瓶申请上获取RQ / RQ工作者。我试图将其缩至一个非常简单的测试用例。这是一般的想法:

  1. 用户访问 /test 页面。触发要排队的作业并返回排队作业的 job_key
  2. 工人( worker.py )处理排队的作业。
  3. 用户可以访问 /retrieve/<job_key> 页面来检索结果。 [这未显示。]

当前作业只是加2 + 2。

以下是应用程序代码:

  from rq import Queue from rq.job import Job  # import conn from worker.py from worker import conn  app = Flask(__name__)  q = Queue(connection=conn)  def add():   return 2+2  @app.route('/test') def test():   job = q.enqueue_call(func="add", args=None, result_ttl=5000)   return job.get_id()  if __name__ == "__main__":   app.run()   

select issue_date,issue_price,issue_entity from voucher_audit where version=2 and voucher_id=x;0 源代码如下所示:

  select issue_date,issue_price,issue_entity from voucher_audit  where version=2 and voucher_id=x;1  

我的知识,应用程序代码不是问题。我可以访问 select issue_date,issue_price,issue_entity from voucher_audit where version=2 and voucher_id=x;2 页面,它将延长作业。但是,一旦我运行工作者,我会收到以下错误:

  select issue_date,issue_price,issue_entity from voucher_audit  where version=2 and voucher_id=x;3  

我觉得是线路:

  select issue_date,issue_price,issue_entity from voucher_audit  where version=2 and voucher_id=x;4  

是错误的错误的问题,但我不知道如何修复它。特别是b / c 我已经看到了其他项目那似乎使用完全相同的工作源代码。

我的技术堆栈是:

  1. 烧瓶(0.11.1)
  2. Redis(2.10.5)
  3. rq(0.6.0)
  4. rq-worker(0.0.1)

编辑

开始认为这是一个错误。在RQ的来源中查看此问题机票:问题#531 。

英文原文

I'm attempting to get RQ/RQ-Worker running on my Flask application. I've tried to get it down to a very simple test case. Here's the general idea:

  1. The user visits the /test page. Which triggers a job to be queued and returns the queued job's job_key
  2. The worker (worker.py) processes the queued job.
  3. The user can then visit the /retrieve/<job_key> page to retrieve the result. [This is not shown.]

The current job is just to add 2 + 2.

Here is the application code:

from rq import Queue from rq.job import Job  # import conn from worker.py from worker import conn  app = Flask(__name__)  q = Queue(connection=conn)  def add():   return 2+2  @app.route('/test') def test():   job = q.enqueue_call(func="add", args=None, result_ttl=5000)   return job.get_id()  if __name__ == "__main__":   app.run() 

The worker.py source code looks like this:

from redis import StrictRedis from rq import Worker, Queue, Connection  listen = ['default'] redis_url = 'redis://localhost:6379' conn = StrictRedis.from_url(redis_url) if __name__ == "__main__":   with Connection(conn):     worker = Worker(list(map(Queue, listen)))     worker.work() 

To my knowledge, the application code isn't the issue. I can visit the /test page which will enqueue the job. However, once I run the worker, I get the following error:

Traceback (most recent call last):   File "/home/<>/dev/sched/venv/lib/python3.5/site-packages/rq/worker.py", line 588, in perform_job     rv = job.perform()   File "/home/<>/dev/sched/venv/lib/python3.5/site-packages/rq/job.py", line 498, in perform     self._result = self.func(*self.args, **self.kwargs)   File "/home/<>/dev/sched/venv/lib/python3.5/site-packages/rq/job.py", line 206, in func     return import_attribute(self.func_name)   File "/home/<>/dev/sched/venv/lib/python3.5/site-packages/rq/utils.py", line 149, in import_attribute     module_name, attribute = name.rsplit('.', 1) ValueError: not enough values to unpack (expected 2, got 1) 

I feel like the line:

worker = Worker(list(map(Queue, listen))) 

is the problem just b/c of the nature of the error, but I have no idea how to fix it. Especially b/c I've seen other projects that seem to use the exact same worker source code.

My technology stack is:

  1. Flask (0.11.1)
  2. Redis (2.10.5)
  3. RQ (0.6.0)
  4. RQ-Worker (0.0.1)

EDIT:

Beginning to think this is a bug. Check out this issue ticket in RQ's source: issue #531.

     
   
   

回答列表

1
 
vote

对我来说,问题是由rq无法解析我的工作模块。

解决方案是将"合格" 名称提供给 enqueue ,例如:

  job = q.enqueue("app.worker.add", data)   
 

For me the issue was caused by RQ not being able to resolve my worker module.

The solution was to supply the "qualified" name to enqueue, e.g:

job = q.enqueue("app.worker.add", data) 
 
 
 
 

相关问题

1  为Mac创建Python应用程序  ( Create python app for mac ) 
我已经建立了一个python命令提示程序,我想导出,以便在点击一个图标时,它将自动运行,就像应用程序一样,但我从未见过一个在终端中运行的应用程序。我应该尝试制作一个应用程序,如果是这样,这是怎么做的? (特别是Mac) ...

0  int函数及其参数  ( The int function and its parameters ) 
我正在研究这个系列问题。 我不了解问题11,使用 int() 的方式。我理解,将 x 直接转换为 int 导致一些零的丢失,所以这样做是不可能的,但我不理解什么 intp = int(p,2) 假设要做。打印出 intp 我得到以下值 4,3,10,9 。如何与 0100,0011,1010,1001 相...

0  使用命令buildozer android部署运行,但每次我收到以下错误  ( Using command buildozer android deploy run but every time i am getting the foll ) 
我一直在遵循YouTube关于制作Android应用程序的教程。由Youtuber制作的应用程序正常工作。但是,当我对应用程序进行了一些修改时,它在我的电脑上完美运行,但是当谈到在Android设备II上部署应用程序时,需要编写Buildozer命令 buildozer android deploy run ,每件事...

10  在熊猫列表中切割多个列,按名称列表  ( Slicing multiple ranges of columns in pandas by list of names ) 
我正在尝试用两种不同的方法选择熊猫DataFrame中的多列: 1)通过列数,例如,列1-3和列6。 和 2)通过列名列表,例如: years = list(range(2000,2017)) months = list(range(1,13)) years_month = list(["A", "B", "...

5  Python中的群集计算快速JSON序列化(和与泡块的比较)?  ( Fast json serialization and comparison with pickle for cluster computing in py ) 
我有一组数据点,每个数据点由字典描述。每个数据点的处理是独立的,我将每个数据作为单独作业提交给群集。每个数据点都有一个唯一的名称,我的群集提交包装器只需调用脚本,该脚本采用数据点的名称和描述所有数据点的文件。然后,该脚本从文件中访问数据点并执行计算。 由于每个作业必须加载所有点的集合,只能检索要运行的点,我想通过序列...

0  使用多处理嵌套并行进程  ( Nesting parallel processes using multiprocessing ) 
是否有一种方法在已经并行化的函数中并行运行函数?我知道使用multiprocessing.pool()这是不可能作为守护进程无法创建子进程。我相当新的并行计算,并努力找到解决方法。 我目前有几千个计算,需要使用其他一些商业上可用的量子机械码I接口并行运行。每个计算,有三个后续计算,需要在父计算的正常终止时并行执行,如...

0  KIVY - 如何将滚动视图拖放到另一个布局的项目?  ( Kivy how to drag and drop items from scrollview to another layout ) 
我试图拖动排列在GridLayout(确实在滚动视图内)的一些图像到外布局。 要拖动的图像具有其 on_touch_down 事件定义,当单击映像时,父父级将从 WidgetMenu 更改为 MainLayout 所以它可以是拖动在这些小部件之间。当前问题是当我触摸图像时,拖船丢失了。 完整代码: import...

0  使用Pandas将对象(数值)转换为DateTime  ( Convert object numeric value to datetime using pandas ) 
我的数据具有时间表,如下所示,如何将其转换为使用Pandas 的日期和时间 ...

9  在Python中线性拟合,在x和y坐标中具有不确定性[关闭]  ( Linear fitting in python with uncertainty in both x and y coordinates ) 
关闭。这个问题不符合堆栈溢出指南。它目前不接受答案。 想要改进这个问题?更新问题,所以它是关于堆栈溢出的主题。 closed 1年前。 ...

1  根据条件平等查找DataFrame中的匹配对或链条  ( Find matching pairs or chains of persons in dataframe based on equality of cond ) 
我是Python的初学者 - 首先我想为我相当长的问题而道歉,我写的可能非常丑陋的程序来解决我的"问题" 。 问题如下:想象一下房屋的交换。人们可以互相交换他们的房子。 1人从"A" 想要去"B" ,从"B" 的人2想要去"A" 。然后实现了匹配或易货物,并且两者都不再可用于进一步匹配。此外,应涵盖案例,该人1希望从...

1  为什么PIP显示包未安装到当前公共区域环境的网站包装?  ( Why does pip show packages which were not installed to the site packages of the ) 
我有Anaconda(带有Python 2版本的公共4.5.11),我始终使用PIP在我的环境中安装包(我不知道这是早些时候的次优)。然而,一些包装,例如,模拟,意外地在: 位置:$ HOME / .local / lib / python3.6 / site-packages (基于Pip Show Mock) ...

0  Boketh Plot隐藏HTML网站并仅在Jupyter中显示输出?  ( Boketh plot hide html site and show output only in jupyter ) 
使用散景包,我创建了一个图形可视化,并使用 WaitForMultipleObjects(...)2 输出显示在jupyter中,但也同时使用输出打开浏览器中的新选项卡。我只想将它绘制在Jupyter单元格中,而不将绘图打开作为新的HTML文件。这是不可分割的吗? WaitForMultipleObjects(....

0  在Django管理员内联的Autofill FookeKey  ( Autofill foreignkey in django admin inline ) 
我有 Employee 内联显示 Company 。 Employee 属于 Company 和一个公司特定的 Department 。 我必须自动填充当前公司到新的部门表格。 #models.py class Company(models.Model): name = models.CharF...

1  如何用两组重新表达URL?  ( How to regex url with two groups ) 
我收到这个网址: private void playSound(String location) { try { Uri mp3 = Uri.parse("android.resource://" + getPackageName() + "/raw/" + l...

0  从HTML元素下载图像  ( Download image from html element ) 
我需要下载包含图像的SRC文件。我们可以在下一个选项卡上复制源并粘贴它,以便我们可以下载图像。但是我需要下载图像递归i.e 1000图像。此外,我正在使用的网站包含CAPTCHA的登录。是否有任何方法可以通过dev控制台或任何可能的方式 ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.