Как я могу уменьшить использование процессора Python?

Вот ситуация:

Ниже приведена команда django. Я хочу постоянно сканировать таблицу EntityLimitTask, статус которой not handle и которая изменила статус на success после некоторой работы


# command name is update_entity_info


import logging
from concurrent.futures import ThreadPoolExecutor
from functools import partial

from django.core.management.base import BaseCommand
from django.db.transaction import atomic
from django.conf import settings
from policy_insight.models import EntityLimitTask
from policy_insight.enums import PiTaskStatusEnum, EntityTypeEnum, AgentTypeEnum
from user_account.models import KaOEEntityInfo
from utils.common import GetOeTokens


logger = logging.getLogger('pi')
logger.setLevel("ERROR")



class Command(BaseCommand):
    help = 'entity limit info'

    def add_arguments(self, parser):
        ...

    def handle(self, *args, **options):
        import django.db
        django.db.close_old_connections()
        entity_limit_tasks = EntityLimitTask.objects.filter(handle_status=PiTaskStatusEnum.NOT_HANDLE, is_deleted=0)

        with ThreadPoolExecutor(max_workers=10) as e:
            e.map(partial(self._update_entity_limit_info, madhouse_token, bv_token), entity_limit_tasks)

    @staticmethod
    def _update_entity_limit_info(madhouse_token, bv_token, task):
        try:
                # do something 
                task.handle_status = PiTaskStatusEnum.SUCCESS
                task.save()
        except Exception:
            import traceback as tb
            logger.error("[update_entity_limit] with error: {}".format(tb.format_exc()))


Затем я пишу infinite loop в shell-файле, например :

# update_entity_info.sh

source /path/to/bin/activate

while true

do

        python /path/to/manage.py update_entity_limit  --pythonpath /path/to/conf --settings settings

done


Но когда я запустил его, я обнаружил, что использование моего процессора очень высокое

top

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU   %MEM     TIME+ COMMAND                                                                                          
21297 user      20    0   984.5m  50.4m  11.6m R 191.3  0.1    0:02.35 python /path/to/manage.py update_entity_limit --pythonpath /...

Как я могу провести некоторую оптимизацию, чтобы уменьшить использование процессора.

Спасибо

Вернуться на верх