Мое мультимодульное python приложение работает отлично - когда я запускаю его из файла .bat или из кода CMD / Visual Studio.
Здесь main.py
:
# Libraries
import roses
import tulips
import log
import data
import datetime
import traceback
from twisted.internet import task, reactor
# Functions to be executed on start up
def startUp():
roses.startUp()
tulips.startUp()
# Functions to be executed every 1 seconds
def seconds_1():
roses.live()
tulips.live()
heartBeat()
data.fireHose()
# Functions to be executed every 1 minute
def minutes_1():
roses.calcs()
tulips.calcs()
# Heartbeat function
def heartBeat():
try:
sqlQuery = """
UPDATE site
SET heartbeat = %s
WHERE id = %s
"""
sqlValues = datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S'), "Flowers101"
data.myDBOps(sqlQuery, sqlValues, "UPDATE")
except:
log.errorLogs.error(traceback.format_exc())
log.infoLogs.error("main.heartBeat failed, retrying..")
heartBeat()
# Main Program Begin
log.infoLogs.info("Program configuration started...")
# ---> Start Up Functions
startUp()
# ---> Harvest new data every 0.5 seconds
everyHalfSecond = task.LoopingCall(data.harvest)
everyHalfSecond.start(0.5)
# ---> Functions that need to run every 1 seconds
every1Second = task.LoopingCall(seconds_1)
every1Second.start(1)
# ---> Functions that need to run once a minute
everyMinute = task.LoopingCall(minutes_1)
everyMinute.start(60)
log.infoLogs.info("Program first loop completed.")
reactor.run()
# Main Program End
# Main Program End
Странные вещи, которые я наблюдал при использовании NSSM:
- Я получаю новые данные из
heartBeat()
в моей базе данных SQL, как и ожидалось. - Я не являюсь получение обновлений данных, которые
roses.live()
, tulips.live()
, roses.calcs()
и tulips.calcs()
должны предоставлять базе данных. - Мои
log
операции не работают.
Что я пробовал:
- Запуск службы вручную, щелкнув правой кнопкой мыши на
services.msc
(те же проблемы, что и выше) - Вместо ссылки
main.py
в NSSM, я поставил промежуточный .bat
файл. Те же проблемы, что и выше.
Надеюсь, у вас есть идея отладки, которой вы хотите поделиться. Я подозреваю, что это как-то связано с twisted
расписанием ...