【问题标题】:What are Queue classes, Worker Classes, Job Classes in Python rq packagePython rq 包中的队列类、工作者类、作业类是什么
【发布时间】:2018-11-30 00:53:37
【问题描述】:
在阅读rq docs 时,我注意到有一些参数可以在启动worker 时传递给rq worker
例子:
rq worker --worker-class 'foo.bar.MyWorker'
参数列表包括
-
--worker-class 或 -w:要使用的 RQ Worker 类(例如 rq worker --worker-class 'foo.bar.MyWorker')
-
--job-class 或 -j:要使用的 RQ 作业类。
-
--queue-class:要使用的 RQ 队列类。
什么是工作类、作业类和队列类,你什么时候使用它们?
【问题讨论】:
标签:
python
python-3.x
redis
queue
python-rq
【解决方案1】:
这只是类的继承(例如来自 rq 的 Worker)
让它成为 base_worker.py
import pseudo_realy_necessery_library_for_every_job
from rq import Worker as BaseClass
class Worker(BaseClass):
def __init__(self, queues=None, *args, **kwargs):
u'''
Constructor.
Accepts the same arguments as the constructor of
``rq.worker.Worker``.
'''
super().__init__(queues, *args, **kwargs)
你可以跑
rq worker --worker-class='base_worker.Worker'
就我而言,我为每个新工作都排除了重新加载库