2017-01-20 12 views
2

Есть ли какие-либо решения для моих нужд? В основном, я запускаю скрипт, который запускает определенную функцию с APScheduler. Таким образом, скрипт будет запускать функцию каждые 5 минут.Запуск сценария Python непрерывно 24/7 на облаке

PythonAnywhere не может этого сделать, потому что они не поддерживают APScheduler .. И это очень плохая практика, если мы используем бесконечный цикл в PythonAnywhere.

+1

Поскольку вы собираетесь запускать его на периодической основе (а не только по расписанию в произвольное время), подумали ли вы о создании кроны? – Marat

ответ

2

Вы можете сделать это с помощью cronjob или вспомогательного скрипта внутри бесконечного цикла while.

В варианте 1 вы должны ввести crontab -e, и вы установили cronjob. В редакторе cron вы можете установить частоту для различных частот. За 5 минут cronjob этот код должен работать

*/5 * * * * /usr/bin/python /home/yourscript.py 

Для варианта 2, вы могли бы установить некоторые вариации команды ниже как питон скрипт

import time 
...... 

while True: 
# your function 
    function() 
    sleep(300) 

командной сон будет приостановить выполнение в течение 5 минут.

Я бы предупредил вас, что запуск бесконечного цикла while на PythonAnywhere быстро сгорит через распределение времени процессора (зависит от того, насколько эффективный код вы пишете).

2

Вы можете попробовать Heroku и его Worker Dynos.

Я нашел его очень простым в настройке, чем другие сервисы, такие как AWS или Google Cloud Platform. У вас может быть базовая учетная запись бесплатно и поиграть.

У них есть надстройка Heroku Scheduler, что позволит избежать бесконечных while.

Heroku Планировщик

Запуск запланированных задач каждые 10 минут, каждый час или каждый день. Начиная с $ 0/мес.

Run Работа с легкостью

планировщик является дополнением для выполнения заданий в вашем приложении через заданные интервалы времени , так же, как хрон в традиционной среде сервера.