diff --git a/feeds/models.py b/feeds/models.py index 0a1b1ff..ef390b4 100644 --- a/feeds/models.py +++ b/feeds/models.py @@ -33,7 +33,7 @@ class Feed(models.Model): execute_feed.delay(self.pk) def __str__(self): - return self.title + return f'#{self.pk} {self.title}' class Meta: unique_together = ('config_type', 'config_id') diff --git a/feeds/tasks.py b/feeds/tasks.py index a7e92e6..5f2f569 100644 --- a/feeds/tasks.py +++ b/feeds/tasks.py @@ -1,3 +1,4 @@ +import sentry_sdk from celery_once import QueueOnce from django.utils import timezone from telebot import TeleBot @@ -24,19 +25,27 @@ def execute_feed(feed_pk): feed = None try: feed = Feed.objects.get(pk=feed_pk) + print(f'Processing feed "{feed}"') if not feed.lock: feed.lock = True feed.save() + else: + print(f'Lock detected, aborting "{feed}"...') + return bot = TeleBot(config.feed_bot_token, threaded=False) + print(f'Last ID for "{feed}" = "{feed.last_id}"') for last_id in feed.config.execute(bot, feed.chat_id, feed.last_id): if last_id: feed.last_id = last_id feed.save() + print(f'Saved last ID for "{feed}" = "{feed.last_id}"') bot.stop_bot() feed.last_check = timezone.now() feed.save() + except Exception as e: + sentry_sdk.capture_exception(e) finally: if feed: feed.lock = False