Выполнение веб-сервера Python как услуга в Windows

Ваша проблема во всех if утверждениях.

  1. if (isVowel = true) должно быть if (isVowel === true) или просто if (isVowel).
  2. И то же самое для if (wordFirstIndex = "a") и всех else if ниже этого. Просто замените = на ===.

Почему. Когда вы делаете if (wordFirstIndex = "a"), вы присваиваете новое значение переменной wordFirstIndex. Это проблема. Для сравнения двух объектов вы должны использовать оператор == или === (предпочтительно). См. этот ответ , чтобы получить больше информации о различиях между == и ===.

6
задан Cœur 3 February 2018 в 07:19
поделиться

1 ответ

Это - то, что я делаю:

Вместо того, чтобы инстанцировать непосредственно класс BaseHTTPServer. HTTPServer, я пишу новому потомку из него, который публикует метод "остановки":

class AppHTTPServer (SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer):
    def serve_forever(self):
        self.stop_serving = False
        while not self.stop_serving:
            self.handle_request()

    def stop (self):
        self.stop_serving = True

И затем, в методе SvcStop, который Вы уже имеете, я называю тот метод для повреждения serve_forever () цикл:

def SvcStop(self):
    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
    self.httpd.stop()

(self.httpd экземпляр AppHTTPServer (), который реализует веб-сервер),

Если Вы используете setDaemon () правильно на фоновых потоках и прерываете правильно все циклы в сервисе, то инструкция

exit(0)

в SvcStop () не должно быть необходимым

3
ответ дан 17 December 2019 в 18:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: