为什么cron失败了?

时间:2012-04-03 09:36:12

标签: python google-app-engine

所以我有这两个cron作业(但是你可以从屏幕上看到它们失败,但我没有在日志中看到任何异常。): Cron Fail

class AddTaskHandler(webapp2.RequestHandler):
def get(self):
    try:
        try:
            logging.info('trying to purge the queue')
            q = taskqueue.Queue('default')
            q.purge()
            logging.info('purge completed')
        except Exception as e:
            logging.error('Error in purging queue, continue., e: ' + e.message)
            pass

        logging.info('adding tasks to queue started')

        taskqueue.add(url = '/tasks/popularityUpdate')
        taskqueue.add(url = '/tasks/weatherUpdate')
        taskqueue.add(url = '/tasks/Recalculation')

        logging.info('adding tasks to queue finished')

        logging.info('Removing items from cache')
        memcache.delete_multi({'news1000', 'events1000', 'music1000', 'movies1000', 'theatre1000'})
        logging.info('Removing items from cache done.')

    except Exception as e:
        logging.error('Exception in adding tasks to the queue, e: ' + e.message)

    self.redirect('/')

路线处理程序:

app = webapp2.WSGIApplication([
    ('/', MainHandler),
    ('/cron/addtask', AddTaskHandler),
    ('/cron/refreshInfo', RefreshHandler),
   ], debug=True)
util.run_wsgi_app(app)

的app.yaml:

application: **********
version: 3
runtime: python27
api_version: 1
threadsafe: no

handlers:
- url: /static
  static_dir: static

- url: /favicon\.ico
  static_files: static/img/favicon.ico
  upload: static/img/favicon\.ico

- url: /humans\.txt
  static_files: static/txt/humans.txt
  upload: static/txt/humans\.txt

- url: /robots\.txt
  static_files: static/txt/robots.txt
  upload: static/txt/robots\.txt

- url: /.*
  script: main.py

- url: /tasks/popularityUpdate
  script: main.py

- url: /tasks/Recalculation
  script: main.py

- url: /tasks/weatherUpdate
  script: main.py

- url: /cron/addtask
  script: main.py

- url: /cron/refreshInfo
  script: main.py

builtins:
- appstats: on

CRON.YAML:

cron:
- description: addTaskToTheQueue
  url: /cron/addtask
  schedule: every 3 hours

- description: refreshInformation
  url: /cron/refreshInfo
  schedule: every 24 hours

所以我的问题是 - gae将其显示为失败的原因是什么?

2 个答案:

答案 0 :(得分:0)

  1. 您应该将catch-all处理程序(/.*)放在app.yaml中处理程序部分的末尾。
  2. 在浏览器中测试basic / cron / addTask是否有效?

答案 1 :(得分:0)

  • 您是否可以访问添加到任务队列的网址(即/ tasks / popularUpdate)?
  • 当您手动输入cron作业网址时,它是否按照预期进行操作?
  • 管理控制台中的日志是否显示任何错误(在cron请求中)?
  • 为什么在cron-job处理程序(AddTaskHandler)的末尾有重定向?尝试删除它。

..弗雷德里克