MCPcopy
hub / github.com/rq/django-rq / scheduled_jobs

Function scheduled_jobs

django_rq/views.py:157–193  ·  view source on GitHub ↗
(request: HttpRequest, queue_index: int)

Source from the content-addressed store, hash-verified

155@never_cache
156@staff_member_required
157def scheduled_jobs(request: HttpRequest, queue_index: int) -> HttpResponse:
158 queue = get_queue_by_index(queue_index)
159
160 registry = ScheduledJobRegistry(queue.name, queue.connection)
161
162 items_per_page = 100
163 num_jobs = len(registry)
164 page = int(request.GET.get('page', 1))
165 jobs = []
166
167 if request.GET.get('desc', '1') == '1':
168 sort_direction = 'descending'
169 else:
170 sort_direction = 'ascending'
171
172 if num_jobs > 0:
173 last_page = int(ceil(num_jobs / items_per_page))
174 page_range = list(range(1, last_page + 1))
175 offset = items_per_page * (page - 1)
176 job_ids = registry.get_job_ids(offset, offset + items_per_page - 1, desc=sort_direction == 'descending')
177 jobs = get_jobs(queue, job_ids, registry)
178 for job in jobs:
179 job.scheduled_at = registry.get_scheduled_time(job) # type: ignore[attr-defined]
180 else:
181 page_range = []
182
183 context_data = {
184 **each_context(request),
185 'queue': queue,
186 'queue_index': queue_index,
187 'jobs': jobs,
188 'num_jobs': num_jobs,
189 'page': page,
190 'page_range': page_range,
191 'sort_direction': sort_direction,
192 }
193 return render(request, 'django_rq/scheduled_jobs.html', context_data)
194
195
196@never_cache

Callers

nothing calls this directly

Calls 3

get_queue_by_indexFunction · 0.85
get_jobsFunction · 0.85
each_contextFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…