Add config option for updating feeds on event
This commit is contained in:
parent
bb1ed902a9
commit
51c5f28443
3 changed files with 5 additions and 4 deletions
|
@ -130,7 +130,7 @@ end
|
||||||
# Start jobs
|
# Start jobs
|
||||||
|
|
||||||
refresh_channels(PG_DB, logger, config.channel_threads, config.full_refresh)
|
refresh_channels(PG_DB, logger, config.channel_threads, config.full_refresh)
|
||||||
refresh_feeds(PG_DB, logger, config.feed_threads)
|
refresh_feeds(PG_DB, logger, config.feed_threads, config.use_feed_events)
|
||||||
subscribe_to_feeds(PG_DB, logger, HMAC_KEY, config)
|
subscribe_to_feeds(PG_DB, logger, HMAC_KEY, config)
|
||||||
|
|
||||||
statistics = {
|
statistics = {
|
||||||
|
|
|
@ -105,6 +105,7 @@ struct Config
|
||||||
hmac_key: String?, # HMAC signing key for CSRF tokens and verifying pubsub subscriptions
|
hmac_key: String?, # HMAC signing key for CSRF tokens and verifying pubsub subscriptions
|
||||||
domain: String?, # Domain to be used for links to resources on the site where an absolute URL is required
|
domain: String?, # Domain to be used for links to resources on the site where an absolute URL is required
|
||||||
use_pubsub_feeds: {type: Bool | Int32, default: false}, # Subscribe to channels using PubSubHubbub (requires domain, hmac_key)
|
use_pubsub_feeds: {type: Bool | Int32, default: false}, # Subscribe to channels using PubSubHubbub (requires domain, hmac_key)
|
||||||
|
use_feed_events: {type: Bool, default: false}, # Update feeds on receiving notifications
|
||||||
default_home: {type: String, default: "Top"},
|
default_home: {type: String, default: "Top"},
|
||||||
feed_menu: {type: Array(String), default: ["Popular", "Top", "Trending", "Subscriptions"]},
|
feed_menu: {type: Array(String), default: ["Popular", "Top", "Trending", "Subscriptions"]},
|
||||||
top_enabled: {type: Bool, default: true},
|
top_enabled: {type: Bool, default: true},
|
||||||
|
|
|
@ -42,12 +42,12 @@ def refresh_channels(db, logger, max_threads = 1, full_refresh = false)
|
||||||
max_channel.send(max_threads)
|
max_channel.send(max_threads)
|
||||||
end
|
end
|
||||||
|
|
||||||
def refresh_feeds(db, logger, max_threads = 1)
|
def refresh_feeds(db, logger, max_threads = 1, use_feed_events = false)
|
||||||
max_channel = Channel(Int32).new
|
max_channel = Channel(Int32).new
|
||||||
|
|
||||||
# TODO: Make this config option, similar to use_pubsub
|
# TODO: Instead of Fiber.yield, use proper queuing to prevent overloading DB
|
||||||
# Spawn thread to handle feed events
|
# Spawn thread to handle feed events
|
||||||
if max_threads > 0
|
if use_feed_events
|
||||||
spawn do
|
spawn do
|
||||||
PG.connect_listen(PG_URL, "feeds") do |event|
|
PG.connect_listen(PG_URL, "feeds") do |event|
|
||||||
spawn do
|
spawn do
|
||||||
|
|
Loading…
Reference in a new issue