2016-04-06 45 views
1

Ben kabı yoluyla cron uç noktaları aramak için herhangi bir örnek veya öğretici bulamıyor
GÜNCELLEME SORU gelen uç noktaları aramaya işleyicisi nasıl oluşturulur.
Arka uç hizmetleri ile ilgili herhangi bir deneyiminiz yok!Google Cloud Endpoint - cron

Eski açıklama ve kod
benim Android App için Android Studio aracılığıyla AppEngine'de konuşlandırılmış bir GCE modülü var. Android uygulamamda uç nokta istemci taslakları aracılığıyla bilgi oluşturabilir ve getirebilirim. Uygulama motorundaki verileri temizlemek için 5 günden eski verileri karşılaştıran ve silen basit bir yöntem vardır.
Bu yöntem, java kodu ile çağrılırsa düzgün çalışıyor.

Oluşturduğum cron ile ilgili bir sorun var. Hiç çalışmıyor mu, yoksa son nokta sınıfımdaki doğru yöntemi mi çağırıyorum. Otomatik olarak çalıştırırken yardıma ihtiyacınız var.

Cronda url girdisi ile birlikte yöntem adı ve yolu bildirmenin farklı yollarına sahibim, ancak henüz başarı yok.

Yığın akışındaki diğer çözümler bana açık değildir.

Son nokta sınıf yöntemi

@ApiMethod(name = "cron.cleanData", path="cron/cleanData") 
    public void cleanData(@Nullable @Named("cursor") String cursorString, 
           @Nullable @Named("count") Integer count) throws NotFoundException { 
     System.out.print("cleanData... called"); 
     CollectionResponse<Data> listData = listData(cursorString, count); 
     for (Data data : listData.getItems()) { 
      System.out.print("for.."); 
       if(isOld(data.getTime(), data.getDate())){ 
        removeData(data.getId()); 
        System.out.print("removed.."+data.getId()); 
       } 
     } 
    } 

cron.xml içindeki WEB-INF

<?xml version="1.0" encoding="UTF-8"?> 
<cronentries> 
    <cron> 
     <url>/cleanData</url> 
     <description>Clean Storage</description> 
     <schedule>every 1 minutes</schedule> 
     <timezone>America/Hawaii</timezone> 
    </cron> 
</cronentries> 

web.xml

<?xml version="1.0" encoding="utf-8"?> 
<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5"> 
    <servlet> 
     <servlet-name>SystemServiceServlet</servlet-name> 
     <servlet-class>com.google.api.server.spi.SystemServiceServlet</servlet-class> 
     <init-param> 
      <param-name>services</param-name> 
      <param-value><MY_PACKAGE>.MyEndpoint</param-value> 
     </init-param> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>SystemServiceServlet</servlet-name> 
     <url-pattern>/_ah/spi/*</url-pattern> 
    </servlet-mapping> 
    <filter> 
     <filter-name>ObjectifyFilter</filter-name> 
     <filter-class>com.googlecode.objectify.ObjectifyFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>ObjectifyFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <welcome-file-list> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 
    <security-constraint> 
     <web-resource-collection> 
      <web-resource-name>cron</web-resource-name> 
      <url-pattern>/cron/*</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
      <role-name>admin</role-name> 
     </auth-constraint> 
    </security-constraint> 
</web-app> 
+0

Olası yinelenen [Google Appengine Uç Noktaları için Cron işi] (http://stackoverflow.com/questions/36305948/cron-job-for-google-appengine-endpoints) – tx802

+0

Orada cevabı anlamadım –

+0

herhangi bir kod örneğini paylaşır mısın? –

cevap

0

Bir cron Bir Google Cloud Endpoint arayamam iş. Bunun yerine, uygulamanızın yapılandırma dosyasında veya bir gönderim dosyasında belirtilen işleyicisinin sunduğu bir hedefe isteği göndermeniz gerekir. Bu işleyici daha sonra uygun son nokta sınıfını ve yöntemini çağırır.

Daha fazla bilgiyi here bulabilirsiniz.

+0

Backend hakkında hiçbir fikrim yok :(. Benimle bir örnek paylaşır mısınız? –

+0

Sadece cron işinizi normal bir Servlet olarak oluşturun. [This] (https://cloud.google.com/appengine/docs/java adresine bakın) Her neyse, eğer sunucu tarafında geliştirme konusunda tecrübeniz yoksa, biraz zaman harcamanız gerekecek – pgiecek

+0

[Bu cevap] (http://stackoverflow.com/a/36373975/1668204) benzer bir soruya – tx802

İlgili konular