GWT, Google App Engine, TimerTask или Поток в ServiceImpl выдают исключение

C#

Это - большой язык, особенно с LINQ, но поддержка дженериков плоха по сравнению с C++. Это имело такой потенциал, но текущая реализация только полезна для наборов со строгим контролем типов и подобных тривиальных вещей. Некоторые примеры того, где это падает:

  • А универсальный аргумент не может быть ограничен перечислениями (только классы или структуры).
  • А универсальным аргументом не может быть статический класс. Почему? Это походит на абсолютно искусственное ограничение.
  • Вы не можете указать, что универсальный тип должен иметь конструктора с определенной подписью, потому что у Вас не может быть конструкторов в интерфейсах. Почему нет? Это - просто другой метод со специальным именем ".ctor".
  • Точно так же Вы не можете указать, что универсальный тип должен иметь статический метод, потому что они также не могут быть объявлены в интерфейсе. Что-то как static T Parse(string s) часто пригождалось бы.
  • компилятор является слишком нетерпеливым в запрещении некоторых бросков, которые знает программист, на самом деле работал бы, таким образом, они требуют уродливости как (TheRealType)(object)value
  • , Никакая ковариантность, например, IList<string> не может быть преобразована в IList<object>, даже при том, что string[] может быть преобразован в object[]. (Microsoft могла бы фиксировать это в C# 4.0, все же.)
7
задан CSchulz 27 January 2012 в 16:10
поделиться

3 ответа

вы не можете - фоновый воркер подразумевает поток, а создание потока в gae не работает.

Ответ на вашу задачу - не создать поток или фоновый воркер, а использовать это http://code.google.com/appengine/docs/java/config/cron.html

6
ответ дан 6 December 2019 в 23:11
поделиться

См. также очереди задач в качестве альтернативы.

0
ответ дан 6 December 2019 в 23:11
поделиться

Проблема не только в App engine, но и вообще в любом контейнере сервлетов. Когда вы находитесь в методе сервиса (а вы всегда находитесь в контейнере сервлетов), вы не можете создавать потоки и делать sleeps.

В современном мире масштабируемых сервисов thread.sleep - плохая вещь....

-1
ответ дан 6 December 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: