threading mode

This commit is contained in:
BennyThink 2021-12-30 12:59:57 +08:00
parent 321f4e8ba7
commit c7de910819
No known key found for this signature in database
GPG key ID: 6CD0DBDA5235D481
2 changed files with 21 additions and 12 deletions

View file

@ -11,33 +11,35 @@ import logging
import os
import pathlib
import tempfile
import time
import threading
from celery import Celery
from pyrogram import idle
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from client_init import create_app
from config import BROKER, ENABLE_CELERY
from config import BROKER, ENABLE_CELERY, WORKERS
from constant import BotText
from db import Redis
from downloader import sizeof_fmt, upload_hook, ytdl_download
from utils import get_metadata, get_user_settings
from utils import get_metadata, get_user_settings, customize_logger, apply_log_formatter
customize_logger(["pyrogram.client", "pyrogram.session.session", "pyrogram.connection.connection"])
apply_log_formatter()
bot_text = BotText()
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(filename)s [%(levelname)s]: %(message)s')
# celery -A tasks worker --loglevel=info --pool=solo
# app = Celery('celery', broker=BROKER, accept_content=['pickle'], task_serializer='pickle')
app = Celery('celery', broker=BROKER)
app = Celery('tasks', broker=BROKER)
celery_client = create_app(app.main, 5)
celery_client = create_app(":memory:")
celery_client.start()
@app.task()
def download_task(chat_id, message_id, url):
logging.info("celery tasks started for %s", url)
with celery_client:
# print(celery_client.get_me())
bot_msg = celery_client.get_messages(chat_id, message_id)
normal_download(bot_msg, celery_client, url)
logging.info("celery tasks ended.")
@ -104,5 +106,12 @@ def normal_download(bot_msg, client, url):
temp_dir.cleanup()
def run_celery():
argv = ["-A", "tasks", 'worker', '--loglevel=info', "--pool=threads", f"--concurrency={WORKERS * 2}"]
app.worker_main(argv)
if __name__ == '__main__':
download_task("", "", "")
threading.Thread(target=run_celery, daemon=True).start()
idle()
celery_client.stop()

View file

@ -29,7 +29,7 @@ from limit import verify_payment
from tasks import download_entrance
from utils import customize_logger, get_user_settings, set_user_settings
customize_logger(["pyrogram.client", "pyrogram.session.session", "pyrogram.client", "pyrogram.connection.connection"])
customize_logger(["pyrogram.client", "pyrogram.session.session", "pyrogram.connection.connection"])
app = create_app()
bot_text = BotText()