fix: publish feeds atomically
This commit is contained in:
parent
cbb427b89d
commit
e64a32d76b
7 changed files with 253 additions and 4 deletions
|
|
@ -15,6 +15,7 @@ from repub.config import (
|
|||
load_config,
|
||||
)
|
||||
from repub.media import check_runtime
|
||||
from repub.postprocessing import publish_staged_feed
|
||||
from repub.spiders.rss_spider import RssFeedSpider
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
|
@ -81,6 +82,14 @@ def run_feeds(
|
|||
deferred = process.crawl(crawler, feed_name=feed.slug, url=feed.url)
|
||||
|
||||
def handle_success(_: object) -> None:
|
||||
try:
|
||||
publish_staged_feed(out_dir=out_dir, feed_slug=feed.slug)
|
||||
except Exception:
|
||||
failure = Failure()
|
||||
logger.error("Feed %s (%s) failed to publish", feed.name, feed.slug)
|
||||
logger.critical("%s", failure.getTraceback())
|
||||
results.append((feed.slug, failure))
|
||||
return None
|
||||
logger.info("Feed %s (%s) completed successfully", feed.name, feed.slug)
|
||||
results.append((feed.slug, None))
|
||||
return None
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue