繁体   English   中英

Cron作业未与AppEngine一起运行

[英]Cron job not running with appengine

在appengine中,我创建了一个cron作业,该作业在间隔2分钟后执行,并将一些数据发布到我的facebook墙上。

但是每隔两分钟,当我在appengine中看到日志时,它会向我显示以下内容,

This request caused a new process to be started for your application, and thus caused your application code to be loaded for the first time. This request may thus take longer and use more CPU than a typical request for your application.

而且我的脸书墙上也没有张贴任何东西。

但是,当我手动执行cron作业url(通过直接在浏览器中点击)时,应用程序会在墙上贴一些东西。

这是我的app.yaml

application: thisisreallyappname
version: 1
runtime: python27
api_version: 1
threadsafe: yes

builtins:
- remote_api: on

inbound_services:
- warmup

libraries:
- name: django
  version: latest

handlers:
- url: /_ah/queue/deferred
  script: djangoappengine.deferred.handler.application
  login: admin

- url: /_ah/stats/.*
  script: djangoappengine.appstats.application

- url: /media/admin
  static_dir: django/contrib/admin/media
  expiration: '0'

- url: /static/admin
  static_dir: django/contrib/admin/static/admin
  expiration: '0'

- url: /static
  static_dir: static
  expiration: '0'

- url: /.*
  script: djangoappengine.main.application

这是我的urls.py

from django.conf.urls import patterns, include, url
from django.conf import settings
from django.conf.urls.static import static
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    url(r'^crona/$', 'testapp.views.crona', name='crona'),
    url(r'^admin/', include(admin.site.urls)),
)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

这是视图,

def crona(request):
   logging.info("hello")
   croned=CronEntries.objects.all().order_by('posted_datetime')[0]

   if croned.email_id=='n*******@gmail.com':
      try:
         access_token="##############################################################"
         graph = facebook.GraphAPI(access_token)
         graph.put_object("me", "feed", message=croned.status_cron)
         croned.delete()
      except Exception as e:
         logging.info(e)
      else:
         return HttpResponse("ok")

这是cron.yaml

cron:
- description: post on fb
  url: /crona
  schedule: every 2 minutes

您的网址处理程序url(r'^crona/$', ...需要尾部斜杠,您的cron网址会忽略该斜杠。即使您将应用程序设置为添加尾部斜杠,您也不想使用cron做到这一点或任务队列,因为您希望他们返回200而不是301

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM