MemoryError() при запуске Celery с RedisPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 MemoryError() при запуске Celery с Redis

Сообщение Anonymous »

Когда я запускаю приведенную ниже задачу сельдерея с помощью API ExportCsv crud, я получаю ошибку памяти.

Код: Выделить всё

@celery.task()
def download_csv():
timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
file_name = f"service_requests_{timestamp}.csv"
file_path = os.path.join(current_app.config['EXPORT_FOLDER'], file_name)

service_requests = ServiceRequest.query.filter_by(service_status="closed").all()

with open(file_path, mode='w', newline='') as csvfile:
csv_writer = csv.writer(csvfile)
csv_writer.writerow([
"Service ID",
"Customer ID",
"Professional ID",
"Date of Request",
"Date of Completion",
"Remarks"
])
for request in service_requests:
csv_writer.writerow([
request.service_id,
request.customer_id,
request.professional_id,
request.date_of_request.strftime('%Y-%m-%d %H:%M:%S'),
request.date_of_completion.strftime('%Y-%m-%d %H:%M:%S') if request.date_of_completion else None,
request.rating or "No remarks"
])

print(f"CSV export completed. File saved at {file_path}")

return file_path
Ниже приведен API, который я вызываю для запуска этой задачи сельдерея.

Код: Выделить всё

class ExportCsv(Resource):
# @auth_token_required
# @roles_required('admin')
def post(self):
task = download_csv.delay()
return make_response(jsonify({'message': 'Task has been triggered', 'task_id': task.id}),200)

def get(self, task_id):
res = AsyncResult(task_id, app=celery)
if res.ready():
file_path = res.result
return send_file(file_path, as_attachment=True, mimetype='text/csv')
return make_response(jsonify({'message': 'Task still running'}), 400)
Когда я импортировал задачу download_csv в файл main.py и запустил ее прямо оттуда, все работает нормально, но проблема заключается в сельдерее. Также я выяснил, что ошибка возникает при выполнении приведенной ниже строки в задаче сельдерея.

Код: Выделить всё

service_requests = ServiceRequest.query.filter_by(service_status="closed").all()
Кто-нибудь может помочь мне решить эту проблему.

Подробнее здесь: https://stackoverflow.com/questions/792 ... with-redis
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • MemoryError() при запуске Celery с Redis
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Ошибка с Celery+S3 celery.Exceptions.ImproperlyConfigured: отсутствует имя сегмента
    Anonymous » » в форуме Python
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Flask не может подключиться к Redis и Celery с помощью Docker-Compose
    Anonymous » » в форуме Python
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Срок действия задачи Celery/Redis истекает
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Celery опрашивает Redis каждую секунду
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

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