2011-08-30 15 views
5

मैंने एक क्रॉन नौकरी निर्दिष्ट की है (विकास में परीक्षण करने के लिए) लेकिन ऐसा लगता है कि यह चल रहा है। कोई कैसे सुनिश्चित करता है कि नौकरियां उत्पादन में काम करेगी?क्रॉन नौकरियां नहीं चल रही हैं (देव में)

cron.yaml:

cron: 
- description: cron test gathering 
    url: /test/cron 
    schedule: every 2 minutes from 09:00 to 23:00 

app.yaml:

application: cron_test 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: /.* 
    script: main.py 

main.py:

class CronHandler(webapp.RequestHandler): 

    def get(self):  
     logging.info("NOTE: CronHandler get request"); 
     return None 
:

url_map = [ ('/test/cron', test.CronHandler), 
      ('/error', err.Err404Handler)] 

application = webapp.WSGIApplication(url_map, debug=False) 

def main(): 
    wsgiref.handlers.CGIHandler().run(application) 

if __name__ == "__main__": 
    main() 

FeedCron के रूप में परिभाषित किया गया है 210

मैं ऐप इंजन के लॉग में, "नोट: क्रोनहैंडलर अनुरोध प्राप्त करें" लाइन देखने की उम्मीद कर रहा था। मैं & ऐप को रोकने के लिए GoogleAppEngineLauncher ऐप (संस्करण: 1.5.3.1187) का उपयोग कर रहा हूं।

उत्तर

3

डी ओह! बस SDK दस्तावेज़ में बारीक अक्षरों देखा:

अजगर एसडीके का उपयोग कर, dev_appserver एक व्यवस्थापक इंटरफ़ेस आप/_ah/व्यवस्थापक/क्रॉन पर क्रॉन नौकरियों देखने की अनुमति देता है कि है।

विकास सर्वर स्वचालित रूप से आपके क्रॉन नौकरियां नहीं चलाता है। आप पर अपने स्थानीय डेस्कटॉप के क्रॉन या शेड्यूल किए गए कार्य इंटरफ़ेस का उपयोग कर सकते हैं कर्ल या इसी तरह के टूल के साथ अपनी नौकरियों के यूआरएल को ट्रिगर कर सकते हैं।

+0

तो आपने लोकेलहोस्ट से क्रॉन नौकरी कैसे शुरू की? –

2

तीन साल बाद चीजों में सुधार हुआ है।

पहले, क्रॉन नौकरी के लिए रास्ते में है: http://localhost:8000/cron

विकास सर्वर (अभी भी) स्वचालित रूप से आपके क्रॉन नौकरियों नहीं चलता है।

  1. "अभी चलाएं" बटन, जो वास्तव में यूआरएल से चलाता क्लिक करें
  2. शेड्यूल देखें, जो आप जब नौकरियों का आश्वासन चाहिए: हालांकि, अगर आप ऊपर के लिंक का उपयोग कर दो बातें कर सकते हैं (हुर्रे!) उत्पादन में चलाया जाएगा
0

मैं स्थानीय देव सर्वर पर क्रॉन नौकरियों को अनुकरण करने का एक तरीका ढूंढ रहा था। एक अस्थायी समाधान के रूप में, मैं स्थानीय रूप से एक पायथन लिपि चला रहा हूं जो क्रॉन यूआरएल तक पहुंचता है और शेड्यूल कार्य को ट्रिगर करता है।

import urllib2 
import time 
while True: 
    print urllib2.urlopen("http://localhost:9080/cron/jobs/") 
    time.sleep(60) 

मेरे मामले में यूआरएल http://localhost:9080/cron/jobs/ है और मैं इसे हर मिनट चलाते हैं। उम्मीद है कि यह मदद कर सकता है।

संबंधित मुद्दे