Недостаток дизайна - прослушивание внешних звонков - PullRequest
0 голосов
/ 12 марта 2019

Я пишу веб-приложение, которое позволяет выполнять и назначать приоритеты для долго выполняющихся заданий с использованием интерфейса на основе фляги.

Центральным компонентом моего приложения является класс Controller, который я хочу использовать для связывания всехчасти вместе, такие как: - внешние вызовы от внешнего интерфейса колбы, - взаимодействие с моделями, - взаимодействие с механизмом выполнения задания.- поддержание 2 очередей для заданий - основной и обычной

В настоящий момент я реализую все функции как методы класса, и у меня возникло ощущение, что у меня ужасный недостаток дизайна:

class Controller ():
    def __init__(self):
        self.pq = queue.Queue()
        self.be = queue.Queue()

    def getJobStructureByTaskAlias(self, alias)
    def getJobStructureByTaskId(self, id)
    def checkRunningJobs(self)
    def submitPriotiryJob(self)
    def submitRegularJob(self)
    def checkQueueSizes(self)
    ...
    def jobDispatcher(self)

jobDispatcher () - это интерфейс к внешнему механизму выполнения заданий, который работает в нескольких потоках:

def jobDispatcher(self):
    if not self.pq.empty():
        job = self.pq.get()
    else:
        job = self.be.get()
    tstamp = app.functions.file_tstamp()
    app.logger.createEvent(1, 'Job invoked invoked: {}'.format(tstamp))
    executorCode = walker.lab_walker.threadedExecutor(job, tstamp)
    app.logger.createEvent(1, 'Job completed with status: {}'.format(executorCode))
    return True

Я чувствую, что в этой реализации есть серьезный недостаток проектирования.Мне нужно убедиться, что объект контроллера как центральный компонент приложения может получать задания из обычных и приоритетных очередей и каким-то образом отправлять их в метод jobDispatcher, а функции управления очередями должны быть доступны для интерфейса фляги.

Как бы я этого достиг?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...