被 Cron 的执行搞迷糊了!

2014-08-09 20:40:09 +08:00
 chaoyj
SAE环境下,需要每分钟执行一次数据库操作。
配置好Cron文件。
日志返回GET /cron HTTP/1.0 301 0 "-" "SAE/cron-nooffset"
但是执行就是不成功(数据库无操作)。

把代码最简化:
from mysite.shelves.models import record
def test(request):
into = record(itemid='111',recordtime = '2014-08-14 19:30:59',recordinfor ='cron do it',plan_id='9')
into.save()
依然不行。

网上寻找的答案普遍反映是环境和变量的问题。
我不知道该怎么办了!
3871 次点击
所在节点    问与答
22 条回复
izoabr
2014-08-09 20:44:16 +08:00
那你有没有排除掉环境变量的问题呢?
chaoyj
2014-08-09 20:49:13 +08:00
@izoabr 因为担心变量问题,所以把代码中变量都换成常量测试。
clino
2014-08-09 21:05:05 +08:00
@chaoyj 楼上说的是环境变量,不是你代码里的变量
chaoyj
2014-08-09 21:15:36 +08:00
@clino 整个执行过程中没有涉及到环境变量的问题。
chaoyj
2014-08-09 21:33:17 +08:00
返回HTTP 为什么会是301呢!
izoabr
2014-08-09 21:42:58 +08:00
@chaoyj 你这个应该是用了django的框架吧,看是不是from mysite导入record的时候就导入不进来,找不到。
你试试脚本里写个测试文件,测试下成功状态的返回是不是200,301可能是失败跳转。
churchmice
2014-08-09 21:58:21 +08:00
感觉就是$PATH之类的玩意没设好
juicy
2014-08-09 22:27:33 +08:00
我最近也有遇到crontab的环境变量问题, 还特意写了篇小文章 http://melon.github.io/blog/2014/08/08/env-for-crontab/ , 没有研究过楼主所用的语言, 但愿文章会对你有点帮助
jakes
2014-08-09 22:36:26 +08:00
页面应该没有正常访问。你自己访问一下网页看一下正不正常。
chaoyj
2014-08-09 22:51:56 +08:00
自己访问完全正常,就是丢到Cron里运行不起来。
chaoyj
2014-08-09 22:57:02 +08:00
@izoabr
from mysite 已经注释掉了
现在文件只有一句:
def test(request):
into='hello'

自己访问200正常,但是SAE的日志中心都是301.
urls.py中如果注释掉信息的话,会正常返回404。

这也太奇怪了吧,没有变量,为什么会是301呢!
chaoyj
2014-08-09 23:04:59 +08:00
@juicy 谢谢,我看下
izoabr
2014-08-09 23:41:20 +08:00
@chaoyj 你这个URL是不是走了django的中间件啊?中间件是不是有要求他做认证之类的?你自己用wget命令试一下在没有任何cookie和session之类的环境试试。
em70
2014-08-10 03:00:16 +08:00
定时器的权限和shell是不一样的,检查一下
ivanlw
2014-08-10 09:42:38 +08:00
这个Cron和crontab是一个东西吗
ccbikai
2014-08-10 10:19:00 +08:00
贴出cron配置看看
chaoyj
2014-08-10 13:28:51 +08:00
@ccbikai
name: jdao
version: 1

cron:
- description: test
url: /test
schedule: every 1 mins
clino
2014-08-10 14:35:54 +08:00
建议在cron里把stdio都重定向到log文件估计就明白了,注意stderr也要重定向
niseter
2014-08-10 17:07:47 +08:00
输出cron的执行结果分析下原因
chaoyj
2014-08-10 18:48:21 +08:00
!!!!!!!
搞定
!!!!!!!

地址匹配少写了一个/

导致和django的urls.py匹配不同,导致了301跳转。


大意害死人!!!

感谢以上热心朋友的帮助!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/126974

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX