Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ feed*.json
*.pyc
*.pyo
*.pyd

#Ignore saved data
data/*
242 changes: 0 additions & 242 deletions bbc_world.xml

This file was deleted.

26 changes: 26 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,35 @@ services:
dockerfile: .docker/Dockerfile
volumes:
- .:/workspace:cached
- mongo_data:/data/db
depends_on:
- redis
#entrypoint: ["/usr/local/bin/entrypoint.sh"]
command: ["celery", "-A", justinsight.celery, "worker", "--loglevel=info"] #the lowercase j is actually so important

celery_beat:
build:
context: .
dockerfile: .docker/Dockerfile
volumes:
- .:/workspace:cached
depends_on:
- redis
#entrypoint: ["/usr/local/bin/entrypoint.sh"]
command: ["celery", "-A", justinsight.celery, "beat", "--loglevel=info"] #the lowercase j is actually so important

mongo:
image: mongo:latest
container_name: mongo
restart: unless-stopped
environment:
MONGO_INITDB_ROOT_USERNAME: myuser
MONGO_INITDB_ROOT_PASSWORD: mypassword
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
- .:/workspace:cached

volumes:
mongo_data:
7 changes: 6 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1 +1,6 @@
celery[redis]
beautifulsoup4
celery[redis]
feedparser
playwright
pymongo
requests
20 changes: 14 additions & 6 deletions src/justinsight/celery.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,23 @@

# Optional beat schedule
app.conf.beat_schedule = {
"sample-task-every-10-seconds": {
"task": "justinsight.tasks.sample_task",
"schedule": 10.0,
# "sample-task-every-5-seconds": {
# "task": "justinsight.tasks.sample_task",
# "schedule": 5.0,
# "args": (),
# },

"check-BBCfeed-every-5-minutes": {
"task": "justinsight.tasks.bbcLogger_task",
"schedule": 300.0,
"args": (),
},
"sample-task-every-5-seconds": {
"task": "justinsight.tasks.sample_task",
"schedule": 5.0,

"check-NYTfeed-every-5-minutes": {
"task": "justinsight.tasks.nytLogger_task",
"schedule": 300.0,
"args": (),
},

#schedule more tasks here
}
15 changes: 13 additions & 2 deletions src/justinsight/tasks.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,22 @@
# tasks.py
from celery import shared_task
from ingest.bbc_rss import testTask
from ingest.bbc_rss import check_and_save_new_entries as check_and_save_bbc
from ingest.nyt_rss import check_and_save_new_entries as check_and_save_nyt


@shared_task
def sample_task():
testTask()
print("Sample task!")
return "done!"

@shared_task
def bbcLogger_task():
check_and_save_bbc()
return "BBC RSS Feed checked."

@shared_task
def nytLogger_task():
check_and_save_nyt()
return "NYT RSS Feed checked."

#Add more tasks here in the format of the one above