Add twitter timeline task
This commit is contained in:
parent
a1ebbe68f5
commit
b53c40a3dd
1 changed files with 34 additions and 0 deletions
|
|
@ -114,6 +114,40 @@ class RedditTokenTask(app.Task):
|
|||
user.save()
|
||||
|
||||
|
||||
class TwitterTimelineTask(app.Task):
|
||||
name = "TwitterTimelineTask"
|
||||
ignore_result = True
|
||||
|
||||
def run(self, user_pk):
|
||||
from newsreader.news.collection.twitter import (
|
||||
TwitterCollector,
|
||||
TwitterTimeLineScheduler,
|
||||
)
|
||||
|
||||
try:
|
||||
user = User.objects.get(pk=user_pk)
|
||||
except ObjectDoesNotExist:
|
||||
message = f"User {user_pk} does not exist"
|
||||
logger.exception(message)
|
||||
|
||||
raise Reject(reason=message, requeue=False)
|
||||
|
||||
with MemCacheLock("f{user.email}-timeline-task", self.app.oid) as acquired:
|
||||
if acquired:
|
||||
logger.info(f"Running twitter timeline task for user {user_pk}")
|
||||
|
||||
scheduler = TwitterTimeLineScheduler(user)
|
||||
timelines = scheduler.get_scheduled_rules()
|
||||
|
||||
collector = TwitterCollector()
|
||||
collector.collect(rules=timelines)
|
||||
else:
|
||||
logger.warning(f"Cancelling task due to existing lock")
|
||||
|
||||
raise Reject(reason="Task already running", requeue=False)
|
||||
|
||||
|
||||
FeedTask = app.register_task(FeedTask())
|
||||
RedditTask = app.register_task(RedditTask())
|
||||
RedditTokenTask = app.register_task(RedditTokenTask())
|
||||
TwitterTimelineTask = app.register_task(TwitterTimelineTask())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue