2023-03-10 05:07:12 +01:00
|
|
|
import atexit
|
2023-07-09 12:29:11 +02:00
|
|
|
|
2023-03-10 05:07:12 +01:00
|
|
|
from apscheduler.schedulers.background import BackgroundScheduler
|
2023-07-09 12:29:11 +02:00
|
|
|
|
2023-03-10 05:07:12 +01:00
|
|
|
scheduler = None
|
|
|
|
|
|
|
|
def setup(args):
|
|
|
|
from libretranslate.flood import forgive_banned
|
|
|
|
from libretranslate.secret import rotate_secrets
|
|
|
|
|
|
|
|
global scheduler
|
|
|
|
|
|
|
|
if scheduler is None:
|
|
|
|
scheduler = BackgroundScheduler()
|
|
|
|
|
|
|
|
if args.req_flood_threshold > 0:
|
|
|
|
scheduler.add_job(func=forgive_banned, trigger="interval", minutes=10)
|
|
|
|
|
|
|
|
if args.api_keys and args.require_api_key_secret:
|
|
|
|
scheduler.add_job(func=rotate_secrets, trigger="interval", minutes=30)
|
|
|
|
|
|
|
|
scheduler.start()
|
|
|
|
|
|
|
|
# Shut down the scheduler when exiting the app
|
|
|
|
atexit.register(lambda: scheduler.shutdown())
|