python - python-rq:工作人员很忙,但 current_job 不存在
问题描述
我正在使用python-rq将后台任务排入队列,然后尝试在我的网络应用程序中检查它们的状态。
首先,我抓取所有连接到队列的工作人员:
workers = rq.Worker.all(queue=queue)
在开始一项任务之前,有一个工作人员的状态idle
如下所示:
pid : 9
job_class : <class 'rq.job.Job'>
queue_class : <class 'rq.queue.Queue'>
version : 1.4.2
python_version : 3.7.7 (default, Jun 9 2020, 17:58:51)
[GCC 8.3.0]
serializer : <class 'rq.serializers.DefaultSerializer'>
name : c3482062db0043ddb4ccc3cdeefb027b
queues : [Queue('training_tasks')]
_exc_handlers : []
default_result_ttl : 500
default_worker_ttl : 420
job_monitoring_interval : 30
_state : idle
_is_horse : False
_horse_pid : 0
_stop_requested : False
log : <Logger rq.worker (INFO)>
log_job_description : True
last_cleaned_at : None
successful_job_count : 0
failed_job_count : 0
total_working_time : 0
birth_date : 2020-06-29 15:45:25.704249
scheduler : None
disable_default_exception_handler : False
_job_id : None
last_heartbeat : 2020-06-29 15:45:25.712674
在我将作业排入队列并开始处理后,工作开始并state
更新为busy
.
pid : 9
job_class : <class 'rq.job.Job'>
queue_class : <class 'rq.queue.Queue'>
version : 1.4.2
python_version : 3.7.7 (default, Jun 9 2020, 17:58:51)
[GCC 8.3.0]
serializer : <class 'rq.serializers.DefaultSerializer'>
name : c3482062db0043ddb4ccc3cdeefb027b
queues : [Queue('training_tasks')]
_exc_handlers : []
default_result_ttl : 500
default_worker_ttl : 420
job_monitoring_interval : 30
_state : busy
_is_horse : False
_horse_pid : 0
_stop_requested : False
log : <Logger rq.worker (INFO)>
log_job_description : True
last_cleaned_at : None
successful_job_count : 0
failed_job_count : 0
total_working_time : 0
birth_date : 2020-06-29 15:45:25.704249
scheduler : None
disable_default_exception_handler : False
_job_id : b'a460194c-e0ac-4cc6-8d4d-41c62a2eca41'
last_heartbeat : 2020-06-29 15:46:47.185807
文档声明工人应该有一个可以检查的current_job
属性,例如元数据,但我的工人没有。我想我可以使用一个job_id
,但我想知道为什么我的工人没有文档所说的属性。
(我使用 rq 1.4.2 和 redis 3.5.3 在 gunicorn 上运行 gevent)
解决方案
推荐阅读
- jquery - 烧瓶 jsonify 未在 html 中显示(ajax)
- prolog - Prolog如何在N×N网格上以“X/Y”格式查找所有坐标
- hangfire - .netcore 2.0 控制台 UseHangfireDashboard 扩展不可用
- .net - 使用 NHibernate 支持 AWS Aurora 故障转移功能的 .Net 应用程序驱动程序
- apache-spark - 通过 Spark 和 Glue 将部分关系 S3 数据移植到 Redshift
- validation - 访问表验证规则
- css - CSS 网格布局动态行
- python - 系列数据增加数字
- c# - 动态替换 URI 中的参数
- mysql - 混合 MySQL/非规范化数据存储以优化 REST API 性能