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),
|
NEODB_DOWNLOADER_RETRIES=(int, 3),
|
||||||
# Disable cron jobs
|
# Disable cron jobs
|
||||||
NEODB_DISABLE_CRON=(bool, False),
|
NEODB_DISABLE_CRON=(bool, False),
|
||||||
|
NEODB_DISABLE_CRON_JOBS=(list, []),
|
||||||
# INTEGRATED TAKAHE CONFIGURATION
|
# INTEGRATED TAKAHE CONFIGURATION
|
||||||
TAKAHE_DB_URL=(str, "postgres://takahe:takahepass@127.0.0.1:5432/takahe"),
|
TAKAHE_DB_URL=(str, "postgres://takahe:takahepass@127.0.0.1:5432/takahe"),
|
||||||
# Spotify - https://developer.spotify.com/
|
# Spotify - https://developer.spotify.com/
|
||||||
|
@ -239,6 +240,7 @@ DOWNLOADER_CACHE_TIMEOUT = env("NEODB_DOWNLOADER_CACHE_TIMEOUT")
|
||||||
DOWNLOADER_RETRIES = env("NEODB_DOWNLOADER_RETRIES")
|
DOWNLOADER_RETRIES = env("NEODB_DOWNLOADER_RETRIES")
|
||||||
|
|
||||||
DISABLE_CRON = env("NEODB_DISABLE_CRON")
|
DISABLE_CRON = env("NEODB_DISABLE_CRON")
|
||||||
|
DISABLE_CRON_JOBS = env("NEODB_DISABLE_CRON_JOBS")
|
||||||
FANOUT_LIMIT_DAYS = env("NEODB_FANOUT_LIMIT_DAYS")
|
FANOUT_LIMIT_DAYS = env("NEODB_FANOUT_LIMIT_DAYS")
|
||||||
# ====== USER CONFIGUTRATION END ======
|
# ====== USER CONFIGUTRATION END ======
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,8 @@ from loguru import logger
|
||||||
from rq.job import Job
|
from rq.job import Job
|
||||||
from rq.registry import ScheduledJobRegistry
|
from rq.registry import ScheduledJobRegistry
|
||||||
|
|
||||||
|
from boofilsic import settings
|
||||||
|
|
||||||
|
|
||||||
class BaseJob:
|
class BaseJob:
|
||||||
interval = timedelta(0) # 0 = disabled, don't set it less than 1 minute
|
interval = timedelta(0) # 0 = disabled, don't set it less than 1 minute
|
||||||
|
@ -25,7 +27,7 @@ class BaseJob:
|
||||||
@classmethod
|
@classmethod
|
||||||
def schedule(cls):
|
def schedule(cls):
|
||||||
job_id = cls.__name__
|
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}")
|
logger.info(f"Skip scheduling job: {job_id}")
|
||||||
return
|
return
|
||||||
logger.info(f"Scheduling job: {job_id} in {cls.interval}")
|
logger.info(f"Scheduling job: {job_id} in {cls.interval}")
|
||||||
|
|
|
@ -33,6 +33,7 @@ x-shared:
|
||||||
NEODB_MASTODON_CLIENT_SCOPE:
|
NEODB_MASTODON_CLIENT_SCOPE:
|
||||||
NEODB_DISABLE_DEFAULT_RELAY:
|
NEODB_DISABLE_DEFAULT_RELAY:
|
||||||
NEODB_DISABLE_CRON:
|
NEODB_DISABLE_CRON:
|
||||||
|
NEODB_DISABLE_CRON_JOBS:
|
||||||
NEODB_SENTRY_DSN:
|
NEODB_SENTRY_DSN:
|
||||||
TAKAHE_SENTRY_DSN:
|
TAKAHE_SENTRY_DSN:
|
||||||
NEODB_DB_URL: ${NEODB_DB_URL:-postgres://neodb:aubergine@neodb-db/neodb}
|
NEODB_DB_URL: ${NEODB_DB_URL:-postgres://neodb:aubergine@neodb-db/neodb}
|
||||||
|
|
|
@ -62,7 +62,7 @@ def user_tag_edit(request):
|
||||||
tag.delete()
|
tag.delete()
|
||||||
msg.info(request.user, _("标签已删除"))
|
msg.info(request.user, _("标签已删除"))
|
||||||
return redirect(
|
return redirect(
|
||||||
reverse("journal:user_tag_list", args=[request.user.mastodon_acct])
|
reverse("journal:user_tag_list", args=[request.user.username])
|
||||||
)
|
)
|
||||||
elif (
|
elif (
|
||||||
tag_title != tag.title
|
tag_title != tag.title
|
||||||
|
@ -80,7 +80,7 @@ def user_tag_edit(request):
|
||||||
return redirect(
|
return redirect(
|
||||||
reverse(
|
reverse(
|
||||||
"journal:user_tag_member_list",
|
"journal:user_tag_member_list",
|
||||||
args=[request.user.mastodon_acct, tag.title],
|
args=[request.user.username, tag.title],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
raise BadRequest()
|
raise BadRequest()
|
||||||
|
|
|
@ -6,24 +6,25 @@ from django.utils import timezone
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
from common.models import BaseJob, JobManager
|
from common.models import BaseJob, JobManager
|
||||||
from users.models import Preference, User
|
from users.models import User
|
||||||
|
|
||||||
|
|
||||||
@JobManager.register
|
@JobManager.register
|
||||||
class MastodonUserSync(BaseJob):
|
class MastodonUserSync(BaseJob):
|
||||||
interval = timedelta(hours=0)
|
batch = 8
|
||||||
|
interval_hours = 3
|
||||||
|
interval = timedelta(hours=interval_hours)
|
||||||
|
|
||||||
def run(self):
|
def run(self):
|
||||||
logger.info("Mastodon User Sync start.")
|
logger.info("Mastodon User Sync start.")
|
||||||
count = 0
|
|
||||||
ttl_hours = 12
|
|
||||||
qs = (
|
qs = (
|
||||||
User.objects.exclude(
|
User.objects.exclude(
|
||||||
preference__mastodon_skip_userinfo=True,
|
preference__mastodon_skip_userinfo=True,
|
||||||
preference__mastodon_skip_relationship=True,
|
preference__mastodon_skip_relationship=True,
|
||||||
)
|
)
|
||||||
.filter(
|
.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(
|
.filter(
|
||||||
username__isnull=False,
|
username__isnull=False,
|
||||||
|
@ -32,6 +33,6 @@ class MastodonUserSync(BaseJob):
|
||||||
.exclude(mastodon_token__isnull=True)
|
.exclude(mastodon_token__isnull=True)
|
||||||
.exclude(mastodon_token="")
|
.exclude(mastodon_token="")
|
||||||
)
|
)
|
||||||
for user in qs:
|
for user in qs.iterator():
|
||||||
user.refresh_mastodon_data()
|
user.refresh_mastodon_data()
|
||||||
logger.info(f"Mastodon User Sync finished.")
|
logger.info(f"Mastodon User Sync finished.")
|
||||||
|
|
Loading…
Add table
Reference in a new issue