Run MAU queries as background processes

Fixes #3820
This commit is contained in:
Richard van der Hoff 2018-10-20 02:13:01 +01:00
parent 81d4f51524
commit a6f421e812
2 changed files with 23 additions and 8 deletions

1
changelog.d/4076.misc Normal file
View File

@ -0,0 +1 @@
Correctly manage logcontexts during startup to fix some "Unexpected logging context" warnings

View File

@ -530,10 +530,13 @@ def run(hs):
clock.looping_call(generate_user_daily_visit_stats, 5 * 60 * 1000) clock.looping_call(generate_user_daily_visit_stats, 5 * 60 * 1000)
# monthly active user limiting functionality # monthly active user limiting functionality
clock.looping_call( def reap_monthly_active_users():
hs.get_datastore().reap_monthly_active_users, 1000 * 60 * 60 return run_as_background_process(
) "reap_monthly_active_users",
hs.get_datastore().reap_monthly_active_users() hs.get_datastore().reap_monthly_active_users,
)
clock.looping_call(reap_monthly_active_users, 1000 * 60 * 60)
reap_monthly_active_users()
@defer.inlineCallbacks @defer.inlineCallbacks
def generate_monthly_active_users(): def generate_monthly_active_users():
@ -547,12 +550,23 @@ def run(hs):
registered_reserved_users_mau_gauge.set(float(reserved_count)) registered_reserved_users_mau_gauge.set(float(reserved_count))
max_mau_gauge.set(float(hs.config.max_mau_value)) max_mau_gauge.set(float(hs.config.max_mau_value))
hs.get_datastore().initialise_reserved_users( def start_generate_monthly_active_users():
hs.config.mau_limits_reserved_threepids return run_as_background_process(
"generate_monthly_active_users",
generate_monthly_active_users,
)
# XXX is this really supposed to be a background process? it looks
# like it needs to complete before some of the other stuff runs.
run_as_background_process(
"initialise_reserved_users",
hs.get_datastore().initialise_reserved_users,
hs.config.mau_limits_reserved_threepids,
) )
generate_monthly_active_users()
start_generate_monthly_active_users()
if hs.config.limit_usage_by_mau: if hs.config.limit_usage_by_mau:
clock.looping_call(generate_monthly_active_users, 5 * 60 * 1000) clock.looping_call(start_generate_monthly_active_users, 5 * 60 * 1000)
# End of monthly active user settings # End of monthly active user settings
if hs.config.report_stats: if hs.config.report_stats: