У меня есть задание cron, которое я хочу запустить, которое вычисляет рейтинг популярности, используя объекты в моем облачном хранилище данных.Google App Engine Cron Работа не обновляется Entity
Entity Выдержка:
@Entity
public class Theme {
@Id
private String themeID;
public int popularity;
public void setPopularity(int popularity) {
this.popularity = popularity;
}
Внутри моей CronController:
@SuppressWarnings("serial")
public class CronController extends HttpServlet {
private static final Logger _logger = Logger.getLogger(CronController.class.getName());
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
try {
_logger.info("Cron Job has been executed");
EntityManager mgr = getEntityManager();
Theme theme = null;
theme = mgr.find(Theme.class, "101");
theme.setPopularity(3);
}
catch (Exception ex) {
//Log any exceptions in your Cron Job
_logger.info("error");
}
}
Я знаю работа хрон работает как требуется, потому что, если я изменю "101" до (длинного) 101 он терпит неудачу констатирует строки требуется, однако, в журнале, но, если указано выше, файл журнала содержит следующее:
0.1.0.1 - - [19/Feb/2014:17:38:37 -0800] "GET /cron/popularity HTTP/1.1" 200 0 - "AppEngine-Google; (+http://code.google.com/appengine)" "themeviewer.appspot.com" ms=14 cpu_ms=233 queue_name=__cron task_name=243a771773a2bbc80eed32256a5b5043 app_engine_release=1.9.0 instance=00c61b117cabbfbf9dcbf5dedbeb449cc73567
I не могу понять, как заставить его регистрировать ошибку, чтобы сообщить мне, почему Entity «101» не имеет значения популярности 3 после выполнения этого задания cron. Как я могу отладить это?
На стороне записки, файлы журнала не показывают «Cron Работа была выполнена» либо ... Я использую следующий веб-сайт в качестве учебного пособия here
Это сработало спасибо. Я думал, что сделал это раньше, не используя .perist. Кроме того, у меня есть mgr.close(), но не в приведенном выше коде ... спасибо! – easycheese