2017-03-22 6 views
0

장고 쉘에서 파이썬 함수를 실행할 때 잘 실행됩니다. 그러나 crontab을 통해 함수를 실행하면 "No JSON object decode object"오류가 발생합니다.django-crontab을 사용하여 cron에 파이썬 함수를 추가하면 "JSON 객체를 디코딩 할 수 없습니다"ERROR

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 

내 코드에서 splunk 나머지 api로 POST 호출을하고 있습니다.

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에서 파이썬 기능을 실행할 때만 오류가 발생합니다.

내가 파이썬 버전을 사용하고 있습니다 : 2.7.10 장고 : 1.8

+1

체크 프린트 후'response.text' 전' – itzMEonTV

+0

응답 response.json' .text는 django 쉘에서 실행할 때 출력됩니다. 그러나 response.text는 cron으로 실행할 때 아무 것도 출력하지 않습니다. –

+0

응답을 게시하십시오. – itzMEonTV

답변

1

당신이 얻을 당신이 API로부터 응답이 없을 때 오류를 "아무 JSON 개체를 디코딩 할 수 없었다."

심지어 똑같은 문제가있었습니다. 30 분마다 생성 된 summary_index 데이터를 수집하려는 splunk에 대한 REST API 호출을 만들었습니다. 따라서 30 분마다 cron이 실행되고있었습니다. 그러나 매 30 분마다 API는 여전히 데이터를 집계하여 30 분마다 실패했습니다. 시간 지연 (즉, 데이터가 제대로 집계되는 시간)으로 API를 누르면 응답이 나타납니다.

그래서 지금 내 크론은 다음과 같이이다 :

5-59/30 * * * * 
이 크론 5 분에서 실행됩니다

후 35 분

+0

감사합니다. 그것은 cron에 대한 나의 설정에 시간 지연을 준 후에 일했습니다. –