Как мне запланировать несколько простых отложенных задач в Scala? - PullRequest
3 голосов
/ 27 апреля 2011

Я создаю программу Chaos Monkey и хочу, чтобы она очищалась после определенного периода времени.Я бы хотел, чтобы простой способ поставить в очередь задачи очистки назывался через некоторое время.Я думаю, что мог бы что-то сделать с актерами и много помахать руками, но это кажется неправильным подходомЕсть ли лучший инструмент для этой задачи в стандартной библиотеке Scala?

Ответы [ 2 ]

9 голосов
/ 27 апреля 2011

Я написал DSL для планирования в Scala под названием foil , который свободно доступен на Github. Он будет работать либо с Java Calendar / Date, либо с библиотекой Joda. Синтаксис выглядит так:

schedule(f) now
schedule(f) onceAfter 5.minutes
schedule(f) onceAt inst
schedule(f) onceAtNext time
schedule(f) todayNoEarlierThan time

Где f - замыкание (т.е. () => Unit). Есть еще много примеров в Wiki и пример сеанса REPL с фольгой, показывающий, как его использовать (как с Java Date / Calendar, так и с JODA).

4 голосов
/ 27 апреля 2011

Нет , поэтому много размахивания руки, reactWithin в сочетании с сообщением TIMEOUT позволит вам сделать это.

Вы также можете использовать Futures.alarm для создания ожидаемогоFuture, которое разрешится после указанного срока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...