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()
|
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())
|
FeedTask = app.register_task(FeedTask())
|
||||||
RedditTask = app.register_task(RedditTask())
|
RedditTask = app.register_task(RedditTask())
|
||||||
RedditTokenTask = app.register_task(RedditTokenTask())
|
RedditTokenTask = app.register_task(RedditTokenTask())
|
||||||
|
TwitterTimelineTask = app.register_task(TwitterTimelineTask())
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue