Django | Celery Async Task Result Pagination
Я использую celery и redis в качестве бэкенда для своих асинхронных задач. Мне нравится постранично отображать результаты в шаблоне. Для запроса данных я использую Javascript (ajax-запросы). Теперь я хочу постранично выводить результаты после запроса данных также с помощью Javascript. Надеюсь, кто-нибудь сможет мне помочь.
Вот мой javascript:
$(document).ready(() => {
console.log('Sanity Check!');
});
$('.button').on('click', function() {
$.ajax({
url: '/tasks/',
data: { type: $(this).data('type'),},
method: 'POST',
})
.done((res) => {
getStatus(res.task_id);
getStatusConfluence(res.task_id_confluence);
})
.fail((err) => {
console.log(err);
});
});
function getStatus(taskID) {
$.ajax({
url: `/tasks/${taskID}/`,
method: 'GET'
})
.done((res) => {
num_hosts = res.value.length
for (i=0; i < num_hosts; i++){
const html = `
<tr>
<td>${res.value[i]['name']}</td>
<td>${res.value[i]['OK']}</td>
<td>${res.value[i]['WARN']}</td>
<td>${res.value[i]['CRIT']}</td>
</tr>
`
$('#result').prepend(html);
}
const taskStatus = res.task_status;
if (taskStatus === 'SUCCESS' || taskStatus === 'FAILURE') return false;
setTimeout(function() {
getStatus(res.task_id);
}, 1000);
})
.fail((err) => {
console.log(err)
});
}
function getStatusConfluence(taskID) {
$.ajax({
url: `/tasks/${taskID}/`,
method: 'GET'
})
.done((res) => {
num_hosts = res.value.length
for (i=0; i < num_hosts; i++){
const html = `
<tr>
<td>${res.value[i]['title']}</td>
</tr>
`
$('#result_confluence').prepend(html);
}
})
.fail((err) => {
console.log(err)
});
}