#python #heroku
Вопрос:
Я пытаюсь выполнить простой скрипт на Python, который вставляет текущую запись метки времени в MongoDB. Скрипт размещен на Heroku.
Основной файл: datetime_heroku.py
import datetime
import pymongo
client = pymongo.MongoClient("mongodb srv://hexxx:xxxxxx@clusxxx.psg7i.mongodb.net/timestamp_recorder?retryWrites=trueamp;w=majority")
def save_data_to_mongo(data):
db = client["timestamp_recorder_db"]
collection = db["time_collection"]
collection.insert_one(data)
if __name__ == "__main__":
date_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
data = {}
data["text"] = "Hello World"
data["date_time"] = date_time
save_data_to_mongo(data)
requirements.txt файл
pymongo
datetime
dnspython
runtime.txt файл
python-3.9.5
Получение ошибки ниже при запуске приложения —
код=H14 описание=»Веб-процессы не запущены» метод=ПОЛУЧИТЬ путь=»/favicon.ico» host=test-py-scheduler.herokuapp.com request_id=ac178878-504a-4e9c-acb0-e11e1062be71 fwd=»49.206.57.99″ динамо= подключение= служба= статус=503 байта= протокол=https
Я попытался найти возможное решение этой ошибки. В некоторых местах упоминается, что нам нужно иметь Procfile в корневом каталоге с содержимым в виде web: python datetime_heroku.py
Я попытался это сделать, а также увеличил свое приложение до 1, запустив heroku ps:scale web=1 --app test-py-scheduler
его, но оно все еще не работает. Поскольку скрипт не является веб-приложением, действительно ли нам нужно выполнять описанные выше действия или мне чего-то здесь не хватает.
Комментарии:
1. Вам не нужен
web
динамометр, используйте aworker
, чтобы вам не нужно было привязывать$PORT