被 Cron 的执行搞迷糊了! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
chaoyj
V2EX    问与答

被 Cron 的执行搞迷糊了!

  •  
  •   chaoyj 2014-08-09 20:40:09 +08:00 4384 次点击
    这是一个创建于 4110 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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()
    依然不行。

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

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

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

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

    地址匹配少写了一个/

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


    大意害死人!!!

    感谢以上热心朋友的帮助!
    izoabr
        21
    izoabr  
       2014-08-10 20:03:25 +08:00
    @chaoyj 唉,301死你就得了,以后咱一起解决问题呀,先把配置和能贴出来的尽量多的配置信息贴出来,别跟挤牙膏似得,问的费劲,答地也不舒服。
    chaoyj
        22
    chaoyj  
    OP
       2014-08-10 20:11:41 +08:00
    @izoabr 刚开始一直以为是程序代码或者环境和变量的问题,怎么也不会想到是URLS.PY匹配的问题,真不好意思,多谢啦
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     819 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 22:01 PVG 06:01 LAX 14:01 JFK 17:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86