Как сделать асинхронный скрипт проверки онлайна у серверов Minecraft?

Мне нужно, что бы каждые 5 минут выполнялся скрипт проверки онлайна у серверов Minecraft. Сейчас скрипт выполняет query запрос к серверу и сохраняет в бд онлайн одного сервера, только при заходе на страницу сервера. Посоветуйте, как реализовать асинхронный(фоновый для пользователя) скрипт проверки онлайна для всех серверов views.py

class NewsDetailView(DetailView):
    model = Servers
    template_name = 'server/server_detail.html'

    def get_context_data(self, **kwards):
        ctx = super(NewsDetailView, self).get_context_data(**kwards)
        ctx['title'] = Servers.objects.filter(pk=self.kwargs['pk']).first()
        return ctx
    
    queryset = Servers.objects.all()

    def get_object(self):
        obj = super().get_object()
        try:
            server = MinecraftServer.lookup(obj.ip)
            status = server.status()
            try:
                obj.num_players = status.players.online
                obj.max_players = status.players.max
            except:
                print('[Error] Server', str(obj.ip), 'not available')
                obj.num_players = 0
                obj.max_players = 0
            obj.save()
        except:
            pass
        return obj

Ответы (1 шт):

Автор решения: inzem77
  1. Используй celery
  2. Напиши management команду и засунь эту команду в крон
→ Ссылка