Добавил кеш к lyngsat
This commit is contained in:
@@ -1047,6 +1047,8 @@ class FillLyngsatDataView(LoginRequiredMixin, FormMessageMixin, FormView):
|
||||
def form_valid(self, form):
|
||||
satellites = form.cleaned_data["satellites"]
|
||||
regions = form.cleaned_data["regions"]
|
||||
use_cache = form.cleaned_data.get("use_cache", True)
|
||||
force_refresh = form.cleaned_data.get("force_refresh", False)
|
||||
|
||||
# Получаем названия спутников
|
||||
target_sats = [sat.name for sat in satellites]
|
||||
@@ -1054,12 +1056,19 @@ class FillLyngsatDataView(LoginRequiredMixin, FormMessageMixin, FormView):
|
||||
try:
|
||||
from lyngsatapp.tasks import fill_lyngsat_data_task
|
||||
|
||||
# Запускаем асинхронную задачу
|
||||
task = fill_lyngsat_data_task.delay(target_sats, regions)
|
||||
# Запускаем асинхронную задачу с параметрами кеширования
|
||||
task = fill_lyngsat_data_task.delay(
|
||||
target_sats,
|
||||
regions,
|
||||
force_refresh=force_refresh,
|
||||
use_cache=use_cache
|
||||
)
|
||||
|
||||
cache_status = "без кеша" if not use_cache else ("с обновлением кеша" if force_refresh else "с кешированием")
|
||||
|
||||
messages.success(
|
||||
self.request,
|
||||
f"Задача запущена! ID задачи: {task.id}. "
|
||||
f"Задача запущена ({cache_status})! ID задачи: {task.id}. "
|
||||
"Вы будете перенаправлены на страницу отслеживания прогресса."
|
||||
)
|
||||
|
||||
@@ -1124,3 +1133,30 @@ class LyngsatTaskStatusAPIView(LoginRequiredMixin, View):
|
||||
response_data['status'] = task.state
|
||||
|
||||
return JsonResponse(response_data)
|
||||
|
||||
|
||||
class ClearLyngsatCacheView(LoginRequiredMixin, View):
|
||||
"""
|
||||
Представление для очистки кеша LyngSat.
|
||||
"""
|
||||
def post(self, request):
|
||||
from lyngsatapp.tasks import clear_cache_task
|
||||
|
||||
cache_type = request.POST.get('cache_type', 'all')
|
||||
|
||||
try:
|
||||
# Запускаем задачу очистки кеша
|
||||
task = clear_cache_task.delay(cache_type)
|
||||
|
||||
messages.success(
|
||||
request,
|
||||
f"Задача очистки кеша ({cache_type}) запущена! ID задачи: {task.id}"
|
||||
)
|
||||
except Exception as e:
|
||||
messages.error(request, f"Ошибка при запуске задачи очистки кеша: {str(e)}")
|
||||
|
||||
return redirect(request.META.get('HTTP_REFERER', 'mainapp:home'))
|
||||
|
||||
def get(self, request):
|
||||
"""Страница управления кешем"""
|
||||
return render(request, 'mainapp/clear_lyngsat_cache.html')
|
||||
|
||||
Reference in New Issue
Block a user