Задания Cron не запущены (в dev) - PullRequest
5 голосов
/ 31 августа 2011

Я указал задание cron (для тестирования в разработке), но, похоже, оно не выполняется. Как убедиться, что рабочие места будут работать на производстве?

cron.yaml:

cron:
- description: cron test gathering
  url: /test/cron
  schedule: every 2 minutes from 09:00 to 23:00

app.yaml:

application: cron_test
version: 1
runtime: python
api_version: 1

handlers:
- url: /.*
  script: main.py

main.py:

url_map = [ ('/test/cron', test.CronHandler),
            ('/error', err.Err404Handler)]

application = webapp.WSGIApplication(url_map, debug=False)

def main():
    wsgiref.handlers.CGIHandler().run(application)

if __name__ == "__main__":
    main()

FeedCron определяется как:

class CronHandler(webapp.RequestHandler):

    def get(self):      
        logging.info("NOTE: CronHandler get request");
        return None

Я ожидал увидеть строку «ПРИМЕЧАНИЕ: CronHandler get request» в журналах движка приложения. Я использую приложение GoogleAppEngineLauncher (версия: 1.5.3.1187) для запуска и остановки приложения.

Ответы [ 4 ]

3 голосов
/ 27 ноября 2014

Три года спустя ситуация улучшилась.

Во-первых, маршрут к Cron Jobs: http://localhost:8000/cron

Сервер разработки (по-прежнему) не запускает автоматически ваши задания cron. Однако, используя ссылку выше, вы можете сделать две вещи:

  1. Нажмите кнопку «Запустить сейчас», которая фактически запускает URL (ура!)
  2. См. График, который должен сообщить вам, когда задания будут запущены в производство
3 голосов
/ 31 августа 2011

D'Oh! Только что увидел мелкий шрифт в документации SDK:

При использовании Python SDK dev_appserver имеет интерфейс администратора это позволяет вам просматривать задания cron по адресу /_ah/admin/cron.

Сервер разработки не запускает автоматически ваши задания cron. Вы можно использовать интерфейс cron или запланированных задач вашего локального рабочего стола для вызвать URL ваших заданий с помощью curl или аналогичного инструмента.

1 голос
/ 02 марта 2016

Я искал способ симулировать задания cron на локальном сервере разработчика. В качестве временного решения я локально запускаю скрипт на python, который обращается к URL-адресу cron и запускает задачу расписания.

import urllib2
import time
while True:
    print urllib2.urlopen("http://localhost:9080/cron/jobs/")
    time.sleep(60)

В моем случае URL-адрес http://localhost:9080/cron/jobs/, и я запускаю его каждую минуту. Надеюсь, это поможет.

0 голосов
/ 22 марта 2018

Ну, мой пользовательский интерфейс и базовая кодовая база были отделены.Таким образом, я добавил код ajax в пользовательский интерфейс, чтобы регулярно использовать конечные точки сервера cron.Это имитировало задания cron для меня в локальной среде разработчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...