首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用django-crontab将python函数添加到cron时,会出现“没有JSON对象可以解码”的错误。

使用django-crontab将python函数添加到cron时,会出现“没有JSON对象可以解码”的错误。
EN

Stack Overflow用户
提问于 2017-03-22 16:47:33
回答 1查看 412关注 0票数 0

当我在django shell上执行python函数时,它执行得很好。但是,当函数通过crontab执行时,它会给出“没有JSON对象可以解码”的错误。

代码语言:javascript
复制
successfully made the api call. response status is  200
Exception occured : No JSON object could be decoded
Failed to complete cronjob at ('0,30 * * * *', 'myapp.cron.pulldata', ' >> /usr/local/devops/myapp/crontab.log')
Traceback (most recent call last):
 File "/usr/local/devops/provider_monitoring/env/lib/python2.7/site-packages/django_crontab/crontab.py", line 145, in run_job
   func(*job_args, **job_kwargs)
 File "/usr/local/devops/provider_monitoring/provider_monitoring/provider_automation/cron.py", line 49, in pulldata_and_createjira
   response = response.json()
 File "/usr/local/devops/provider_monitoring/env/lib/python2.7/site-packages/requests/models.py", line 866, in json
   return complexjson.loads(self.text, **kwargs)
 File "/opt/python-2.7.10/lib/python2.7/json/__init__.py", line 338, in loads
   return _default_decoder.decode(s)
 File "/opt/python-2.7.10/lib/python2.7/json/decoder.py", line 366, in decode
   obj, end = self.raw_decode(s, idx=_w(s, 0).end())
 File "/opt/python-2.7.10/lib/python2.7/json/decoder.py", line 384, in raw_decode
   raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded

我在我的代码中做了一个POST调用来实现rest。

代码语言:javascript
复制
payload = {'search' : 'search index="xyz" | table a , b , c' , 'earliest_time' : '-60m' , 'output_mode' : 'json_rows' }
url = "https://localhost:8089/services/search/jobs/export"
headers = {'content-type': "application/x-www-form-urlencoded",'authorization': "xyz",'cache-control': "no-cache"}
response = requests.adapters.HTTPAdapter(pool_connections=10, pool_maxsize=10, max_retries=5, pool_block=False)
response = requests.request("POST", url, data=payload, headers=headers, verify=False)            
response = response.json()

只有在cron中运行python函数时才会出错。

我使用python版本: 2.7.10 django : 1.8

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-26 20:26:35

当您没有来自api的响应时,您会得到"No对象无法解码“错误。

甚至我也有同样的问题,我正在对splunk进行REST调用,在那里我想收集每30 minutes.So生成一次minutes.So数据,我的cron每30分钟运行一次。但每隔30分钟,api仍在聚合数据,因此每30分钟就失败一次。当我使用时间延迟(即数据被正确聚合的时间)访问api时,我得到了响应。

所以现在我的克郎是这样的:

代码语言:javascript
复制
 5-59/30 * * * *

这个cron将在5分钟后运行,35分钟后运行

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42957919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档