diff --git a/back/api/celery.py b/back/api/celery.py index 1a6760b..13aeeff 100644 --- a/back/api/celery.py +++ b/back/api/celery.py @@ -13,8 +13,4 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "api.settings") celery_app = Celery("api") celery_app.config_from_object(f'django.conf:settings', namespace='CELERY') -celery_app.autodiscover_tasks() - -@celery_app.task(bind=True) -def debug_task(self): - print(f'Request: {self.request!r}') \ No newline at end of file +celery_app.autodiscover_tasks() \ No newline at end of file diff --git a/back/tgbot/tasks.py b/back/tgbot/tasks.py index 470a42d..fada9f0 100644 --- a/back/tgbot/tasks.py +++ b/back/tgbot/tasks.py @@ -1,12 +1,42 @@ +import os +import boto3 +import time +import requests + from celery import shared_task from celery.utils.log import get_task_logger from api.celery import celery_app logger = get_task_logger(__name__) - +aws_access_key_id = os.environ.get("AWS_ACCESS") +aws_secret_access_key = os.environ.get("AWS_SECRET") @celery_app.task def upload_file(file_id): - logger.info('123') + from .updater import tg_bot_updater_instance + tg_bot_updater_instance.my_queue.put({"name": "admin_get_image", "queryset": file_id}) + + response = None + timer = 30 + while timer > 0: + sleeping = 1 + timer -= sleeping + time.sleep(sleeping) + if file_id in tg_bot_updater_instance.return_values: + response = tg_bot_updater_instance.return_values[file_id] + del tg_bot_updater_instance.return_values[file_id] + break + + if response: + r = requests.get(response, stream=True) + s3 = boto3.client( + service_name="s3", + endpoint_url="https://s3.ru-1.storage.selcloud.ru", + aws_access_key_id=aws_access_key_id, + aws_secret_access_key=aws_access_key_id, + ) + s3.upload_fileobj(r.raw) + + logger.info("123") logger.info(file_id)