fix 500; fix NEODB-SOCIAL-1XT

This commit is contained in:
Your Name 2023-12-28 22:12:07 -05:00 committed by Henri Dickson
parent b2fb8d0d9a
commit c5690ec441
5 changed files with 15 additions and 9 deletions

View file

@ -72,6 +72,7 @@ env = environ.FileAwareEnv(
NEODB_DOWNLOADER_RETRIES=(int, 3),
# Disable cron jobs
NEODB_DISABLE_CRON=(bool, False),
NEODB_DISABLE_CRON_JOBS=(list, []),
# INTEGRATED TAKAHE CONFIGURATION
TAKAHE_DB_URL=(str, "postgres://takahe:takahepass@127.0.0.1:5432/takahe"),
# Spotify - https://developer.spotify.com/
@ -239,6 +240,7 @@ DOWNLOADER_CACHE_TIMEOUT = env("NEODB_DOWNLOADER_CACHE_TIMEOUT")
DOWNLOADER_RETRIES = env("NEODB_DOWNLOADER_RETRIES")
DISABLE_CRON = env("NEODB_DISABLE_CRON")
DISABLE_CRON_JOBS = env("NEODB_DISABLE_CRON_JOBS")
FANOUT_LIMIT_DAYS = env("NEODB_FANOUT_LIMIT_DAYS")
# ====== USER CONFIGUTRATION END ======

View file

@ -5,6 +5,8 @@ from loguru import logger
from rq.job import Job
from rq.registry import ScheduledJobRegistry
from boofilsic import settings
class BaseJob:
interval = timedelta(0) # 0 = disabled, don't set it less than 1 minute
@ -25,7 +27,7 @@ class BaseJob:
@classmethod
def schedule(cls):
job_id = cls.__name__
if cls.interval <= timedelta(0):
if cls.interval <= timedelta(0) or job_id in settings.DISABLE_CRON_JOBS:
logger.info(f"Skip scheduling job: {job_id}")
return
logger.info(f"Scheduling job: {job_id} in {cls.interval}")

View file

@ -33,6 +33,7 @@ x-shared:
NEODB_MASTODON_CLIENT_SCOPE:
NEODB_DISABLE_DEFAULT_RELAY:
NEODB_DISABLE_CRON:
NEODB_DISABLE_CRON_JOBS:
NEODB_SENTRY_DSN:
TAKAHE_SENTRY_DSN:
NEODB_DB_URL: ${NEODB_DB_URL:-postgres://neodb:aubergine@neodb-db/neodb}

View file

@ -62,7 +62,7 @@ def user_tag_edit(request):
tag.delete()
msg.info(request.user, _("标签已删除"))
return redirect(
reverse("journal:user_tag_list", args=[request.user.mastodon_acct])
reverse("journal:user_tag_list", args=[request.user.username])
)
elif (
tag_title != tag.title
@ -80,7 +80,7 @@ def user_tag_edit(request):
return redirect(
reverse(
"journal:user_tag_member_list",
args=[request.user.mastodon_acct, tag.title],
args=[request.user.username, tag.title],
)
)
raise BadRequest()

View file

@ -6,24 +6,25 @@ from django.utils import timezone
from loguru import logger
from common.models import BaseJob, JobManager
from users.models import Preference, User
from users.models import User
@JobManager.register
class MastodonUserSync(BaseJob):
interval = timedelta(hours=0)
batch = 8
interval_hours = 3
interval = timedelta(hours=interval_hours)
def run(self):
logger.info("Mastodon User Sync start.")
count = 0
ttl_hours = 12
qs = (
User.objects.exclude(
preference__mastodon_skip_userinfo=True,
preference__mastodon_skip_relationship=True,
)
.filter(
mastodon_last_refresh__lt=timezone.now() - timedelta(hours=ttl_hours)
mastodon_last_refresh__lt=timezone.now()
- timedelta(hours=self.interval_hours * self.batch)
)
.filter(
username__isnull=False,
@ -32,6 +33,6 @@ class MastodonUserSync(BaseJob):
.exclude(mastodon_token__isnull=True)
.exclude(mastodon_token="")
)
for user in qs:
for user in qs.iterator():
user.refresh_mastodon_data()
logger.info(f"Mastodon User Sync finished.")