rqmonitor: Exception displayed when navigating to the "Jobs" page

Using the latest docker image, when navigating to the “Jobs” page I get (in the browser, not in the log):

                  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/rqmonitor/decorators.py", line 32, in _wrapper
    raise RQMonitorException(**kwargs).with_traceback(tb)
  File "/rqmonitor/decorators.py", line 22, in _wrapper
    inner_response = func(*args, **kwargs)
  File "/rqmonitor/decorators.py", line 11, in _wrapper
    _rendered_template = func(*args, **kwargs)
  File "/rqmonitor/bp.py", line 223, in list_jobs_api
    jobs = resolve_jobs(job_counts, start, length)
  File "/rqmonitor/utils.py", line 495, in resolve_jobs
    current_block_jobs = list_jobs_in_queue_registry(block[0], block[1], cursor,
  File "/rqmonitor/utils.py", line 280, in list_jobs_in_queue_registry
    return [Job.fetch(job_id) for job_id in job_ids]
  File "/rqmonitor/utils.py", line 280, in <listcomp>
    return [Job.fetch(job_id) for job_id in job_ids]
  File "/usr/local/lib/python3.8/site-packages/rq/job.py", line 299, in fetch
    job.refresh()
  File "/usr/local/lib/python3.8/site-packages/rq/job.py", line 505, in refresh
    raise NoSuchJobError('No such job: {0}'.format(self.key))

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 15 (4 by maintainers)

Most upvoted comments

I can confirm that the time parse issue is fixed when upgrading RQ to >1.4, however the pranavgupta1234/rqmonitor docker image ships with rq==1.2 so even if your project has an updated version of RQ, RQ Monitor does not.

Another one, when going to the “jobs” page and there are active jobs:

                  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/rqmonitor/decorators.py", line 32, in _wrapper
    raise RQMonitorException(**kwargs).with_traceback(tb)
  File "/rqmonitor/decorators.py", line 22, in _wrapper
    inner_response = func(*args, **kwargs)
  File "/rqmonitor/decorators.py", line 11, in _wrapper
    _rendered_template = func(*args, **kwargs)
  File "/rqmonitor/bp.py", line 223, in list_jobs_api
    jobs = resolve_jobs(job_counts, start, length)
  File "/rqmonitor/utils.py", line 495, in resolve_jobs
    current_block_jobs = list_jobs_in_queue_registry(block[0], block[1], cursor,
  File "/rqmonitor/utils.py", line 289, in list_jobs_in_queue_registry
    return queue.get_jobs(start, end-start+1)
  File "/usr/local/lib/python3.8/site-packages/rq/queue.py", line 167, in get_jobs
    return compact([self.fetch_job(job_id) for job_id in job_ids])
  File "/usr/local/lib/python3.8/site-packages/rq/queue.py", line 167, in <listcomp>
    return compact([self.fetch_job(job_id) for job_id in job_ids])
  File "/usr/local/lib/python3.8/site-packages/rq/queue.py", line 147, in fetch_job
    job = self.job_class.fetch(job_id, connection=self.connection)
  File "/usr/local/lib/python3.8/site-packages/rq/job.py", line 299, in fetch
    job.refresh()
  File "/usr/local/lib/python3.8/site-packages/rq/job.py", line 506, in refresh
    self.restore(data)
  File "/usr/local/lib/python3.8/site-packages/rq/job.py", line 474, in restore
    self.started_at = str_to_date(obj.get('started_at'))
  File "/usr/local/lib/python3.8/site-packages/rq/utils.py", line 256, in str_to_date
    return utcparse(as_text(date_str))
  File "/usr/local/lib/python3.8/site-packages/rq/utils.py", line 172, in utcparse
    return datetime.datetime.strptime(string, '%Y-%m-%dT%H:%M:%SZ')
  File "/usr/local/lib/python3.8/_strptime.py", line 568, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/usr/local/lib/python3.8/_strptime.py", line 349, in _strptime
    raise ValueError("time data %r does not match format %r" %