У меня внутренняя веб-страница с низким трафиком, которую мы используем для управления удаленными компьютерами.
Эта веб-страница пытается зарегистрировать задание CRON, поэтому раз в неделю в указанное время в список будет отправляться электронное письмо с текущим статусом данных из базы данных.
Однако при тестировании все оказалось нормально. При запуске в продакшн я тестировал работу cron, она работала. Но если оставить систему работать на выходных (когда, возможно, в системе никого нет), задание не выполняется.
Я пробовал инициализировать несколько разных способов, чтобы он не (не должен) быть привязан к каким-либо запросам в системе и должен регистрироваться при инициализации, независимо от того, попал ли кто-нибудь в систему.
mmsver.wsgi
from flask_apscheduler.scheduler import APScheduler
from nydps.web.mmserver import app as application
scheduler = APScheduler()
scheduler.init_app(application)
scheduler.start()
mmserver.py (отрывок)
def weekly_report():
# doing things with a session
# send_smtp is a custom smtp function
send_smtp(smtp_content, destination, smtpSender, 'TMM Directory: Weekly Utilization Report')
app.config['JOBS'] = [{
'id': 'weekly_report',
'func': weekly_report,
'trigger': {
'type': 'cron',
'day_of_week': weekly_report_day_of_week,
'hour': weekly_report_hour,
'minute': weekly_report_minute
}
}]
Если пойду, поменяю отчет день, час, минуту. Перезагрузите сервер, он запустится. Только когда я устанавливаю дневной час и минуту на время в немного более отдаленном будущем (когда я не нахожусь на сайте активно), похоже, что оно не выполняется.
Есть предположения?
Изменить: производство развертывается за Apache с использованием WAMP в Windows.