Я создаю приложение для моего отца, которое собирает результаты лото (beautifulsoup) и отправляет их по электронной почте (sendgrid). Я использую heroku для запуска сценария github repo по расписанию. Если я запустлю его, он будет работать нормально. Электронные письма будут отправлены, но происходит сбой процесса, который перезапускает их из-за политики перезапуска dyno . Сбой не так уж и плох, потому что скрипт выполнит свою работу, но проблема заключается в перезапуске динамометрического стенда, что приводит к отправке большого количества электронных писем. Вы найдете сценарий в моем репо.
Мое предположение - асинхронность с красивым супом и / или сендгридом. Знаете ли вы, как получить лучшую информацию о журнале в героку? Если я закомментирую фактическую часть отправки электронной почты и запустлю планировщик через десять минут, то это сработает, а работник - нет.
Мой Procfile выглядит так:
worker: python lotto_mailer.py
Вот журнал сервера.
Nov 19 05:56:36 lotto-mailer heroku/scheduler.2285: Starting process with command `if [ "$(date +%u)" = 1 ]; then python lotto_mailer.py; fi`
Nov 19 05:56:37 lotto-mailer heroku/scheduler.2285: State changed from starting to up
Nov 19 05:56:40 lotto-mailer heroku/scheduler.2285: State changed from up to complete
Nov 19 05:56:40 lotto-mailer heroku/scheduler.2285: Process exited with status 0
Nov 19 05:56:41 lotto-mailer app/scheduler.2285: Ziehung vom Samstag, 17.11.2018
Nov 19 05:56:41 lotto-mailer app/scheduler.2285: Gewinnzahlen: [3, 6, 18, 31, 39, 40] SZ: 5
... App OUTPUT ...
Nov 19 05:56:41 lotto-mailer app/scheduler.2285: UTC Hour: 13
Не отвлекайтесь на команду, которую запускает планировщик. Это просто запустить его только по понедельникам. Кажется, что только рабочий сбой, а не планировщик.
Nov 19 06:04:24 lotto-mailer heroku/worker.1: State changed from crashed to starting
Nov 19 06:04:29 lotto-mailer heroku/worker.1: Starting process with command `python lotto_mailer.py`
Nov 19 06:04:29 lotto-mailer heroku/worker.1: State changed from starting to up
Nov 19 06:04:29 lotto-mailer heroku/worker.1: State changed from crashed to starting
Nov 19 06:04:32 lotto-mailer heroku/worker.1: State changed from up to crashed
Nov 19 06:04:33 lotto-mailer heroku/worker.1: Process exited with status 0
Nov 19 06:04:33 lotto-mailer app/worker.1: Ziehung vom Samstag, 17.11.2018
Nov 19 06:04:33 lotto-mailer app/worker.1: Gewinnzahlen: [3, 6, 18, 31, 39, 40] SZ: 5
... APP OUTPUT ...
Почему рабочий вообще бежит? Если вам нужна дополнительная информация, просто дайте мне сейчас. Спасибо за помощь.
решение: Я признал, что могу деактивировать работника
здесь
и просто запустите планировщик, но остается вопрос: почему сбой рабочего.