0

私は GAE+SpringMVC に取り組んでいます。私のプロジェクトでは 1 つのバックエンドを書きましたが、5 回以上実行されていますが、そのバックエンドを 1 回だけ実行したいです。以下のコードを確認してください。

@RequestMapping(value="/gDirectory/testBackend.htm" ,method=RequestMethod.GET)
    public String testBackend(HttpServletRequest reg)
    {

         final  Logger logger=Logger.getLogger(this.getClass().getName());
         logger.warning("calling updateOrgChart.htm.....");

        try {
            String url="/gDirectory/testbackend1.htm";
            Queue queue = QueueFactory.getDefaultQueue();
            TaskOptions objTskOptions=  TaskOptions.Builder.withUrl(url)
                //  .countdownMillis(countmilliseconds)
                    .header("Host", BackendServiceFactory.getBackendService().getBackendAddress("testbackend"))
                    .method(Method.GET);
                     queue.add(objTskOptions);

        } catch(Exception e){
        ErrorHandler.errorHandler(this.getClass().getName(), e);
        logger.warning("Exception in adding oldcustomer..161."+e);
        logger.warning("Exception in adding oldcustomer..161."+e.getMessage());
        logger.warning("Exception in adding oldcustomer..161."+e.getLocalizedMessage());
    }
        return "testBackend";
    }

マイバックエンド

  @RequestMapping(value="/gDirectory/testbackend1.htm" ,method=RequestMethod.GET)
    public String testBackend1(HttpServletRequest reg)
    {

         final  Logger logger=Logger.getLogger(this.getClass().getName());
         logger.warning("calling updateOrgChart.htm.....");

        try {
             logger.warning("This is my testbackend...........................");
             LifecycleManager.getInstance().setShutdownHook(new ShutdownHook() {
                  public void shutdown() {
                    LifecycleManager.getInstance().interruptAllRequests();
                  }
                });
        } catch(Exception e){
        ErrorHandler.errorHandler(this.getClass().getName(), e);
        logger.warning("Exception in adding oldcustomer..161."+e);
        logger.warning("Exception in adding oldcustomer..161."+e.getMessage());
        logger.warning("Exception in adding oldcustomer..161."+e.getLocalizedMessage());
    }
        return "testBackend";
    }

backend.xml

    <backend name="testbackend">
        <class>B2</class>
        <instances>5</instances>
        <options>
            <dynamic>true</dynamic>
        </options>
    </backend>

このバックエンドは7回以上実行されます...しかし、私は1回だけ実行したいのですが、助けてください

4

1 に答える 1

0

バックエンド タスクが例外をスローした可能性があります (おそらく App Engine コンソールでログを確認してください)。その場合、プッシュ キューは (指数バックオフで) 再試行します。この場合、コンソールに最後の応答ステータスと再試行回数が表示されます。

于 2013-11-13T18:07:25.133 に答える