Опрос AJAX продолжается бесконечно даже после завершения создания отчета в приложении Flask.Jquery

Программирование на jquery
Ответить
Anonymous
 Опрос AJAX продолжается бесконечно даже после завершения создания отчета в приложении Flask.

Сообщение Anonymous »

У меня есть приложение flask, в котором пользователи могут создавать отчеты. Отчеты создаются успешно, файл отчета создается, но мой механизм опроса никогда не останавливается, поскольку статус отчета никогда не помечается как завершенный, он всегда остается «работающим».
Вот соответствующие код:
ajax-запрос и опрос:
$.ajax({
url: '/submit',
type: 'POST',
data: formData,
dataType: 'json',
success: function(response) {
console.log(response.message);
pollReportStatus();
},
error: function(xhr, status, error) {
// Error handling code
}
});

function pollReportStatus() {
var intervalId = setInterval(function(){
$.ajax({
url: '/report-status',
type: 'GET',
dataType: 'json',
success: function(response) {
if (response.status === 'complete') {
clearInterval(intervalId);
// Logic after polling stops
}
},
error: function(xhr, status, error) {
// Error handling code
}
});
}, 30000);
}


Код Python:
@app.route('/submit', methods=['POST'])
def submit():
session['report_status'] = 'running'
session.modified = True

@copy_current_request_context
def generate_report_session_accessible():
generate_report(report, session['username'], session['password'])

executor = concurrent.futures.ThreadPoolExecutor(max_workers=1)
executor.submit(generate_report_session_accessible)

return jsonify({"status": "success", "message": "Report successfully submitted"})

def generate_report(report, username, password):
try:
// Report generation logic

session['report_status'] = 'complete'
session.modified = True
except Exception as e:
session['report_status'] = 'error'
session.modified = True

@app.route('/report-status', methods=['GET'])
def report_status():
status = session.get('report_status', 'not_started')
return jsonify({"status": status})



Подробнее здесь: https://stackoverflow.com/questions/791 ... omplete-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»