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)
  });
}
Вернуться на верх