mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-10 05:39:11 +00:00
Disable AP Scheduler while performing maintenance
This commit is contained in:
8
src/khoj/interface/web/assets/icons/share.svg
Normal file
8
src/khoj/interface/web/assets/icons/share.svg
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||||
|
<svg width="800px" height="800px" viewBox="-0.5 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M6.75 15C8.13071 15 9.25 13.8807 9.25 12.5C9.25 11.1193 8.13071 10 6.75 10C5.36929 10 4.25 11.1193 4.25 12.5C4.25 13.8807 5.36929 15 6.75 15Z" stroke="#0F0F0F" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M17.25 8C18.6307 8 19.75 6.88071 19.75 5.5C19.75 4.11929 18.6307 3 17.25 3C15.8693 3 14.75 4.11929 14.75 5.5C14.75 6.88071 15.8693 8 17.25 8Z" stroke="#0F0F0F" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M17.25 22C18.6307 22 19.75 20.8807 19.75 19.5C19.75 18.1193 18.6307 17 17.25 17C15.8693 17 14.75 18.1193 14.75 19.5C14.75 20.8807 15.8693 22 17.25 22Z" stroke="#0F0F0F" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M13.49 17.05L10.45 15.06" stroke="#0F0F0F" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
<path d="M13.48 7.96001L10.46 9.94001" stroke="#0F0F0F" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -2,6 +2,16 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<div class="section">
|
<div class="section">
|
||||||
|
<div id="maintenance-notice">
|
||||||
|
<div class="urgent-notice">
|
||||||
|
<p>
|
||||||
|
Hold up! Our Automations are taking a well-deserved break for some maintenance magic. They'll be back in action soon, better than ever. Thanks for your patience!
|
||||||
|
</p>
|
||||||
|
<div>
|
||||||
|
<a class="maintenance-action" href="/">Back to Chat</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<h2 class="section-title">
|
<h2 class="section-title">
|
||||||
<img class="card-icon" src="/static/assets/icons/automation.svg?v={{ khoj_version }}" alt="Automate">
|
<img class="card-icon" src="/static/assets/icons/automation.svg?v={{ khoj_version }}" alt="Automate">
|
||||||
<span class="card-title-text">Automate (Preview)</span>
|
<span class="card-title-text">Automate (Preview)</span>
|
||||||
@@ -208,6 +218,32 @@
|
|||||||
grid-gap: 8px;
|
grid-gap: 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div#maintenance-notice {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 2;
|
||||||
|
background-image: linear-gradient(to bottom, rgba(250, 130, 130, 0.8), rgba(255, 165, 0, 0.8));
|
||||||
|
}
|
||||||
|
|
||||||
|
a.maintenance-action{
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.urgent-notice p,
|
||||||
|
div.urgent-notice a {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
padding: 20px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
div.subject-wrapper p {
|
div.subject-wrapper p {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
@@ -237,7 +273,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
<script>
|
<!-- <script>
|
||||||
function deleteAutomation(automationId) {
|
function deleteAutomation(automationId) {
|
||||||
const AutomationList = document.getElementById("automations");
|
const AutomationList = document.getElementById("automations");
|
||||||
fetch(`/api/automation?automation_id=${automationId}`, {
|
fetch(`/api/automation?automation_id=${automationId}`, {
|
||||||
@@ -879,5 +915,5 @@
|
|||||||
document.getElementById("automations").insertBefore(automationEl, document.getElementById("automations").firstChild);
|
document.getElementById("automations").insertBefore(automationEl, document.getElementById("automations").firstChild);
|
||||||
setupScheduleViewListener("* * * * *", placeholderId);
|
setupScheduleViewListener("* * * * *", placeholderId);
|
||||||
})
|
})
|
||||||
</script>
|
</script> -->
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ from khoj.utils.initialization import initialization
|
|||||||
|
|
||||||
def shutdown_scheduler():
|
def shutdown_scheduler():
|
||||||
logger.info("🌑 Shutting down Khoj")
|
logger.info("🌑 Shutting down Khoj")
|
||||||
state.scheduler.shutdown()
|
# state.scheduler.shutdown()
|
||||||
|
|
||||||
|
|
||||||
def run(should_start_server=True):
|
def run(should_start_server=True):
|
||||||
@@ -134,17 +134,17 @@ def run(should_start_server=True):
|
|||||||
poll_task_scheduler()
|
poll_task_scheduler()
|
||||||
|
|
||||||
# Setup Background Scheduler
|
# Setup Background Scheduler
|
||||||
from django_apscheduler.jobstores import DjangoJobStore
|
# from django_apscheduler.jobstores import DjangoJobStore
|
||||||
|
|
||||||
state.scheduler = BackgroundScheduler(
|
# state.scheduler = BackgroundScheduler(
|
||||||
{
|
# {
|
||||||
"apscheduler.timezone": "UTC",
|
# "apscheduler.timezone": "UTC",
|
||||||
"apscheduler.job_defaults.misfire_grace_time": "60", # Useful to run scheduled jobs even when worker delayed because it was busy or down
|
# "apscheduler.job_defaults.misfire_grace_time": "60", # Useful to run scheduled jobs even when worker delayed because it was busy or down
|
||||||
"apscheduler.job_defaults.coalesce": "true", # Combine multiple jobs into one if they are scheduled at the same time
|
# "apscheduler.job_defaults.coalesce": "true", # Combine multiple jobs into one if they are scheduled at the same time
|
||||||
}
|
# }
|
||||||
)
|
# )
|
||||||
state.scheduler.add_jobstore(DjangoJobStore(), "default")
|
# state.scheduler.add_jobstore(DjangoJobStore(), "default")
|
||||||
state.scheduler.start()
|
# state.scheduler.start()
|
||||||
|
|
||||||
# Start Server
|
# Start Server
|
||||||
configure_routes(app)
|
configure_routes(app)
|
||||||
|
|||||||
Reference in New Issue
Block a user