18 lines
467 B
Python
18 lines
467 B
Python
from celery_once import QueueOnce
|
|
|
|
from aggregator.client import get_client
|
|
from config.celery import app
|
|
|
|
from .client import collect_new_messages as _collect_new_messages
|
|
|
|
|
|
@app.task(base=QueueOnce, once={'keys': ['chat_id'], 'graceful': True})
|
|
def collect_new_messages(chat_id):
|
|
from .models import Chat
|
|
|
|
chat = Chat.objects.get(pk=chat_id)
|
|
client = get_client(takeout=True)
|
|
client.start()
|
|
_collect_new_messages(client, chat)
|
|
client.stop()
|