fix 500; fix NEODB-SOCIAL-1XT
This commit is contained in:
parent
b2fb8d0d9a
commit
c5690ec441
5 changed files with 15 additions and 9 deletions
|
@ -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 ======
|
||||
|
||||
|
|
|
@ -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}")
|
||||
|
|
|
@ -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}
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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.")
|
||||
|
|
Loading…
Add table
Reference in a new issue