Add scheduler to do wagtail maintainence
This commit is contained in:
parent
bfd43954f4
commit
b9a6932027
5 changed files with 57 additions and 1 deletions
1
Pipfile
1
Pipfile
|
@ -17,6 +17,7 @@ wagtail-markdown = "*"
|
||||||
wagtail-metadata = "*"
|
wagtail-metadata = "*"
|
||||||
"beautifulsoup4" = "*"
|
"beautifulsoup4" = "*"
|
||||||
honcho = "*"
|
honcho = "*"
|
||||||
|
apscheduler = "*"
|
||||||
|
|
||||||
[dev-packages]
|
[dev-packages]
|
||||||
mypy = "*"
|
mypy = "*"
|
||||||
|
|
16
Pipfile.lock
generated
16
Pipfile.lock
generated
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"_meta": {
|
"_meta": {
|
||||||
"hash": {
|
"hash": {
|
||||||
"sha256": "7e5e4e6264138d1006434f06a80432b48823e721ad7628d1ef08cd7e5c107f71"
|
"sha256": "6980a024219b52487dfcf494d8eb84ed8fec1d9a4ab942c9198d0ec872aa95f7"
|
||||||
},
|
},
|
||||||
"pipfile-spec": 6,
|
"pipfile-spec": 6,
|
||||||
"requires": {
|
"requires": {
|
||||||
|
@ -16,6 +16,14 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"default": {
|
"default": {
|
||||||
|
"apscheduler": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:6aba721f4db411be8f5ffe89acbaa174fe46425e15edf32ed7bfdfafb6ec1eb4",
|
||||||
|
"sha256:f255126d188703d68af84d9159df7dce7bed0bb351bf8551d33fe0988bae2bf0"
|
||||||
|
],
|
||||||
|
"index": "pypi",
|
||||||
|
"version": "==3.5.2"
|
||||||
|
},
|
||||||
"beautifulsoup4": {
|
"beautifulsoup4": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:194ec62a25438adcb3fdb06378b26559eda1ea8a747367d34c33cef9c7f48d57",
|
"sha256:194ec62a25438adcb3fdb06378b26559eda1ea8a747367d34c33cef9c7f48d57",
|
||||||
|
@ -289,6 +297,12 @@
|
||||||
],
|
],
|
||||||
"version": "==1.11.0"
|
"version": "==1.11.0"
|
||||||
},
|
},
|
||||||
|
"tzlocal": {
|
||||||
|
"hashes": [
|
||||||
|
"sha256:4ebeb848845ac898da6519b9b31879cf13b6626f7184c496037b818e238f2c4e"
|
||||||
|
],
|
||||||
|
"version": "==1.5.1"
|
||||||
|
},
|
||||||
"unidecode": {
|
"unidecode": {
|
||||||
"hashes": [
|
"hashes": [
|
||||||
"sha256:280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051",
|
"sha256:280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051",
|
||||||
|
|
1
Procfile
1
Procfile
|
@ -1 +1,2 @@
|
||||||
web: python3 manage.py runserver 0.0.0.0:8000
|
web: python3 manage.py runserver 0.0.0.0:8000
|
||||||
|
scheduler: python3 manage.py scheduler
|
||||||
|
|
25
project/common/management/commands/scheduler.py
Normal file
25
project/common/management/commands/scheduler.py
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
from apscheduler.schedulers.blocking import BlockingScheduler
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from django.core.management import call_command
|
||||||
|
import logging
|
||||||
|
import functools
|
||||||
|
|
||||||
|
|
||||||
|
logger = logging.getLogger(__file__)
|
||||||
|
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def call_management_command(cls, command_name):
|
||||||
|
wrapped = functools.partial(call_command, command_name)
|
||||||
|
wrapped.__qualname__ = command_name
|
||||||
|
return wrapped
|
||||||
|
|
||||||
|
def handle(self, **options):
|
||||||
|
scheduler = BlockingScheduler()
|
||||||
|
scheduler.add_job(self.call_management_command("publish_scheduled_pages"), 'cron', minute=0)
|
||||||
|
scheduler.add_job(self.call_management_command("fixtree"), 'cron', day_of_week=0)
|
||||||
|
scheduler.add_job(self.call_management_command("update_index"), 'cron', day_of_week=0)
|
||||||
|
scheduler.add_job(self.call_management_command("search_garbage_collect"), 'cron', day_of_week=0)
|
||||||
|
scheduler.start()
|
|
@ -179,3 +179,18 @@ if 'ELASTICSEARCH_URL' in os.environ:
|
||||||
'INDEX_SETTINGS': {},
|
'INDEX_SETTINGS': {},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
LOGGING = {
|
||||||
|
'version': 1,
|
||||||
|
'handlers': {
|
||||||
|
'console': {
|
||||||
|
'level': 'DEBUG',
|
||||||
|
'class': 'logging.StreamHandler',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'root': {
|
||||||
|
'handlers': ['console'],
|
||||||
|
'level': 'INFO',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
Reference in a new issue