Я пытаюсь реализовать часовой процесс для использования в Heroku dyno. Я использую Python 3.6. Тактовый процесс будет запускаться каждые 3 часа. Это код:
import os
import sys
import requests
from apscheduler.schedulers import asyncio
from apscheduler.schedulers.asyncio import AsyncIOScheduler
from apscheduler.triggers.interval import IntervalTrigger
from webdriverdownloader import GeckoDriverDownloader
from scraper.common import main
def get_driver():
return True
def notify(str):
return True;
if __name__ == '__main__':
scheduler = AsyncIOScheduler()
get_driver()
scheduler.add_job(main, trigger=IntervalTrigger(hours=3))
scheduler.start()
# Execution will block here until Ctrl+C (Ctrl+Break on Windows) is pressed.
try:
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.wait())
except (KeyboardInterrupt, SystemExit):
pass
Сначала я пытался с
asyncio.get_event_loop().run_forever()
Однако я прочитал, что это не поддерживается в python 3.6, поэтому я изменил это выражение на run_until_complete
.
Если я запускаю этот пример, код выводит:
AttributeError: модуль «apscheduler.schedulers.asyncio» не имеет атрибута «get_event_loop»
Кто-нибудь знает, почему возникает эта ошибка? Любая помощь приветствуется. Заранее спасибо!
run_forever
был доступен с тех пор, как asyncio был добавлен в Python 3.4. Вы можете спутать его сasyncio.run
, который был добавлен в 3.7. - person dirn   schedule 15.07.2020